diff options
| author | James Rutherford | 2015-03-11 10:38:03 +0000 | 
|---|---|---|
| committer | James Rutherford | 2015-03-11 10:38:03 +0000 | 
| commit | 4a2d27975ab5249269aebafd803be87a2107092b (patch) | |
| tree | 55b524c93b02eef404304f734be98871bbb1324f /rest_framework/response.py | |
| parent | 856dc855c952746f566a6a8de263afe951362dfb (diff) | |
| parent | dc56e5a0f41fdd6350e91a5749023d086bd1640f (diff) | |
| download | django-rest-framework-4a2d27975ab5249269aebafd803be87a2107092b.tar.bz2 | |
Merge pull request #1 from tomchristie/master
Merge in from upstream
Diffstat (limited to 'rest_framework/response.py')
| -rw-r--r-- | rest_framework/response.py | 22 | 
1 files changed, 16 insertions, 6 deletions
| diff --git a/rest_framework/response.py b/rest_framework/response.py index 5877c8a3..c21c60a2 100644 --- a/rest_framework/response.py +++ b/rest_framework/response.py @@ -7,7 +7,7 @@ The appropriate renderer is called during Django's template response rendering.  from __future__ import unicode_literals  from django.core.handlers.wsgi import STATUS_CODE_TEXT  from django.template.response import SimpleTemplateResponse -from rest_framework.compat import six +from django.utils import six  class Response(SimpleTemplateResponse): @@ -16,7 +16,7 @@ class Response(SimpleTemplateResponse):      arbitrary media types.      """ -    def __init__(self, data=None, status=200, +    def __init__(self, data=None, status=None,                   template_name=None, headers=None,                   exception=False, content_type=None):          """ @@ -58,9 +58,15 @@ class Response(SimpleTemplateResponse):          ret = renderer.render(self.data, media_type, context)          if isinstance(ret, six.text_type): -            assert charset, 'renderer returned unicode, and did not specify ' \ -            'a charset value.' +            assert charset, ( +                'renderer returned unicode, and did not specify ' +                'a charset value.' +            )              return bytes(ret.encode(charset)) + +        if not ret: +            del self['Content-Type'] +          return ret      @property @@ -75,10 +81,14 @@ class Response(SimpleTemplateResponse):      def __getstate__(self):          """ -        Remove attributes from the response that shouldn't be cached +        Remove attributes from the response that shouldn't be cached.          """          state = super(Response, self).__getstate__() -        for key in ('accepted_renderer', 'renderer_context', 'data'): +        for key in ( +            'accepted_renderer', 'renderer_context', 'resolver_match', +            'client', 'request', 'wsgi_request' +        ):              if key in state:                  del state[key] +        state['_closable_objects'] = []          return state | 
