Fixed #16848 - Adjusted SimpleTemplateResponse.__init__ to be less brittle.

Could have reverted r16830 instead, but HttpResponse shouldn't have to dance
around and do non-obvious things to keep TemplateResponse happy,
TemplateResponse should be robust against the possibility that
HttpResponse.__init__ might set self.content.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16831 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Carl Meyer 2011-09-15 07:26:35 +00:00
parent 2fa433ed55
commit ce48e8e940
1 changed files with 8 additions and 4 deletions

View File

@ -21,10 +21,6 @@ class SimpleTemplateResponse(HttpResponse):
self.template_name = template self.template_name = template
self.context_data = context self.context_data = context
# _is_rendered tracks whether the template and context has been
# baked into a final response.
self._is_rendered = False
self._post_render_callbacks = [] self._post_render_callbacks = []
# content argument doesn't make sense here because it will be replaced # content argument doesn't make sense here because it will be replaced
@ -33,6 +29,14 @@ class SimpleTemplateResponse(HttpResponse):
super(SimpleTemplateResponse, self).__init__('', mimetype, status, super(SimpleTemplateResponse, self).__init__('', mimetype, status,
content_type) content_type)
# _is_rendered tracks whether the template and context has been baked
# into a final response.
# Super __init__ doesn't know any better than to set self.content to
# the empty string we just gave it, which wrongly sets _is_rendered
# True, so we initialize it to False after the call to super __init__.
self._is_rendered = False
def __getstate__(self): def __getstate__(self):
"""Pickling support function. """Pickling support function.