Loading django/http/response.py +13 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ class HttpResponseBase(six.Iterator): """ status_code = 200 reason_phrase = None # Use default reason phrase for status code. def __init__(self, content_type=None, status=None, reason=None, charset=None): # _headers is a mapping of the lower-case name to the original case of Loading @@ -52,16 +51,25 @@ class HttpResponseBase(six.Iterator): self.closed = False if status is not None: self.status_code = status if reason is not None: self.reason_phrase = reason elif self.reason_phrase is None: self.reason_phrase = responses.get(self.status_code, 'Unknown Status Code') self._reason_phrase = reason self._charset = charset if content_type is None: content_type = '%s; charset=%s' % (settings.DEFAULT_CONTENT_TYPE, self.charset) self['Content-Type'] = content_type @property def reason_phrase(self): if self._reason_phrase is not None: return self._reason_phrase # Leave self._reason_phrase unset in order to use the default # reason phrase for status code. return responses.get(self.status_code, 'Unknown Status Code') @reason_phrase.setter def reason_phrase(self, value): self._reason_phrase = value @property def charset(self): if self._charset is not None: Loading docs/ref/request-response.txt +18 −0 Original line number Diff line number Diff line Loading @@ -631,6 +631,12 @@ Attributes The `HTTP status code`_ for the response. .. versionchanged:: 1.9 Unless :attr:`reason_phrase` is explicitly set, modifying the value of ``status_code`` outside the constructor will also modify the value of ``reason_phrase``. .. attribute:: HttpResponse.reason_phrase The HTTP reason phrase for the response. Loading @@ -642,6 +648,9 @@ Attributes .. _`HTTP standard's`: https://www.ietf.org/rfc/rfc2616.txt Unless explicitly set, ``reason_phrase`` is determined by the current value of :attr:`status_code`. .. attribute:: HttpResponse.streaming This is always ``False``. Loading Loading @@ -987,6 +996,12 @@ Attributes The `HTTP status code`_ for the response. .. versionchanged:: 1.9 Unless :attr:`reason_phrase` is explicitly set, modifying the value of ``status_code`` outside the constructor will also modify the value of ``reason_phrase``. .. attribute:: StreamingHttpResponse.reason_phrase The HTTP reason phrase for the response. Loading @@ -998,6 +1013,9 @@ Attributes .. _`HTTP standard's`: https://www.ietf.org/rfc/rfc2616.txt Unless explicitly set, ``reason_phrase`` is determined by the current value of :attr:`status_code`. .. attribute:: StreamingHttpResponse.streaming This is always ``True``. Loading docs/releases/1.9.txt +6 −1 Original line number Diff line number Diff line Loading @@ -163,7 +163,12 @@ Templates Requests and Responses ^^^^^^^^^^^^^^^^^^^^^^ * ... * Unless :attr:`HttpResponse.reason_phrase <django.http.HttpResponse.reason_phrase>` is explicitly set, it now is determined by the current value of :attr:`HttpResponse.status_code <django.http.HttpResponse.status_code>`. Modifying the value of ``status_code`` outside of the constructor will also modify the value of ``reason_phrase``. Tests ^^^^^ Loading tests/responses/tests.py +6 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,12 @@ class HttpResponseTests(SimpleTestCase): self.assertEqual(resp.status_code, 503) self.assertEqual(resp.reason_phrase, "Service Unavailable") def test_change_status_code(self): resp = HttpResponse() resp.status_code = 503 self.assertEqual(resp.status_code, 503) self.assertEqual(resp.reason_phrase, "Service Unavailable") def test_reason_phrase(self): reason = "I'm an anarchist coffee pot on crack." resp = HttpResponse(status=814, reason=reason) Loading Loading
django/http/response.py +13 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ class HttpResponseBase(six.Iterator): """ status_code = 200 reason_phrase = None # Use default reason phrase for status code. def __init__(self, content_type=None, status=None, reason=None, charset=None): # _headers is a mapping of the lower-case name to the original case of Loading @@ -52,16 +51,25 @@ class HttpResponseBase(six.Iterator): self.closed = False if status is not None: self.status_code = status if reason is not None: self.reason_phrase = reason elif self.reason_phrase is None: self.reason_phrase = responses.get(self.status_code, 'Unknown Status Code') self._reason_phrase = reason self._charset = charset if content_type is None: content_type = '%s; charset=%s' % (settings.DEFAULT_CONTENT_TYPE, self.charset) self['Content-Type'] = content_type @property def reason_phrase(self): if self._reason_phrase is not None: return self._reason_phrase # Leave self._reason_phrase unset in order to use the default # reason phrase for status code. return responses.get(self.status_code, 'Unknown Status Code') @reason_phrase.setter def reason_phrase(self, value): self._reason_phrase = value @property def charset(self): if self._charset is not None: Loading
docs/ref/request-response.txt +18 −0 Original line number Diff line number Diff line Loading @@ -631,6 +631,12 @@ Attributes The `HTTP status code`_ for the response. .. versionchanged:: 1.9 Unless :attr:`reason_phrase` is explicitly set, modifying the value of ``status_code`` outside the constructor will also modify the value of ``reason_phrase``. .. attribute:: HttpResponse.reason_phrase The HTTP reason phrase for the response. Loading @@ -642,6 +648,9 @@ Attributes .. _`HTTP standard's`: https://www.ietf.org/rfc/rfc2616.txt Unless explicitly set, ``reason_phrase`` is determined by the current value of :attr:`status_code`. .. attribute:: HttpResponse.streaming This is always ``False``. Loading Loading @@ -987,6 +996,12 @@ Attributes The `HTTP status code`_ for the response. .. versionchanged:: 1.9 Unless :attr:`reason_phrase` is explicitly set, modifying the value of ``status_code`` outside the constructor will also modify the value of ``reason_phrase``. .. attribute:: StreamingHttpResponse.reason_phrase The HTTP reason phrase for the response. Loading @@ -998,6 +1013,9 @@ Attributes .. _`HTTP standard's`: https://www.ietf.org/rfc/rfc2616.txt Unless explicitly set, ``reason_phrase`` is determined by the current value of :attr:`status_code`. .. attribute:: StreamingHttpResponse.streaming This is always ``True``. Loading
docs/releases/1.9.txt +6 −1 Original line number Diff line number Diff line Loading @@ -163,7 +163,12 @@ Templates Requests and Responses ^^^^^^^^^^^^^^^^^^^^^^ * ... * Unless :attr:`HttpResponse.reason_phrase <django.http.HttpResponse.reason_phrase>` is explicitly set, it now is determined by the current value of :attr:`HttpResponse.status_code <django.http.HttpResponse.status_code>`. Modifying the value of ``status_code`` outside of the constructor will also modify the value of ``reason_phrase``. Tests ^^^^^ Loading
tests/responses/tests.py +6 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,12 @@ class HttpResponseTests(SimpleTestCase): self.assertEqual(resp.status_code, 503) self.assertEqual(resp.reason_phrase, "Service Unavailable") def test_change_status_code(self): resp = HttpResponse() resp.status_code = 503 self.assertEqual(resp.status_code, 503) self.assertEqual(resp.reason_phrase, "Service Unavailable") def test_reason_phrase(self): reason = "I'm an anarchist coffee pot on crack." resp = HttpResponse(status=814, reason=reason) Loading