From ce48e8e9400c7030e5a351efde172e4bd3230966 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Thu, 15 Sep 2011 07:26:35 +0000 Subject: [PATCH] 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 --- django/template/response.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/django/template/response.py b/django/template/response.py index 7741a3e3ad..990a17b6bf 100644 --- a/django/template/response.py +++ b/django/template/response.py @@ -21,10 +21,6 @@ class SimpleTemplateResponse(HttpResponse): self.template_name = template 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 = [] # 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, 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): """Pickling support function.