@@ -277,15 +277,9 @@ class HttpResponse(object):
277
277
def __init__ (self , content = '' , mimetype = None , status = None ,
278
278
content_type = None , request = None ):
279
279
from django .conf import settings
280
- accept_charset = None
281
- self ._charset = settings .DEFAULT_CHARSET
282
280
if mimetype :
283
281
content_type = mimetype # Mimetype arg is an alias for content-type
284
- if request :
285
- accept_charset = request .META .get ("ACCEPT_CHARSET" )
286
- if accept_charset or content_type :
287
- encoding = get_response_encoding (content_type , accept_charset )
288
- (self ._charset , self ._codec ) = encoding
282
+ self .determine_charset (content_type , request )
289
283
if not content_type :
290
284
content_type = "%s; charset=%s" % (settings .DEFAULT_CONTENT_TYPE ,
291
285
self ._charset )
@@ -294,8 +288,7 @@ def __init__(self, content='', mimetype=None, status=None,
294
288
if hasattr (content , 'close' ):
295
289
content .close ()
296
290
self .cookies = SimpleCookie ()
297
- if status :
298
- self .status_code = status
291
+ self .status_code = status
299
292
# _headers is a mapping of the lower-case name to the original case of
300
293
# the header (required for working with legacy systems) and the header
301
294
# value.
@@ -306,6 +299,15 @@ def __str__(self):
306
299
return '\n ' .join (['%s: %s' % (k , v ) for k , v in self ._headers .values ()]) \
307
300
+ "\n \n " + self .content
308
301
302
+ def determine_charset (self , content_type , request ):
303
+ self ._charset = settings .DEFAULT_CHARSET
304
+ accept_charset = None
305
+ if request :
306
+ accept_charset = request .META .get ("ACCEPT_CHARSET" )
307
+ if accept_charset or content_type :
308
+ encoding = get_response_encoding (content_type , accept_charset )
309
+ (self ._charset , self ._codec ) = encoding
310
+
309
311
def _convert_to_ascii (self , * values ):
310
312
"""Converts all values to ascii strings."""
311
313
for value in values :
@@ -390,7 +392,8 @@ def _get_status_code(self):
390
392
return self ._status_code
391
393
392
394
def _set_status_code (self , value ):
393
- self ._status_code = value
395
+ if value :
396
+ self ._status_code = value
394
397
395
398
status_code = property (_get_status_code , _set_status_code )
396
399
0 commit comments