diff options
| author | Luke Plant <L.Plant.98@cantab.net> | 2011-09-30 11:46:23 +0000 |
|---|---|---|
| committer | Luke Plant <L.Plant.98@cantab.net> | 2011-09-30 11:46:23 +0000 |
| commit | 10d90cba83d5dfbe52eb5501279c3db71b42dd41 (patch) | |
| tree | 4778f76411706c9de023ce89f2451d43dcdd8bdf | |
| parent | 5009e45dfe366ebf520eecb49d72d5a11cee1623 (diff) | |
Fixed #16935 - misleading message if AttributeError escapes during SimpleTemplateResponse.render
Thanks to isagalaev for the report.
As discussed on django-devs, this reverts some of the changes in [16568]
i.e. the addition of `SimpleTemplateResponse.__getattr__`, because this
makes it much harder to debug the common case of an AttributeError somewhere
during the rendering of a SimpleTemplateResponse.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16917 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/template/response.py | 12 | ||||
| -rw-r--r-- | tests/regressiontests/templates/response.py | 7 |
2 files changed, 3 insertions, 16 deletions
diff --git a/django/template/response.py b/django/template/response.py index 990a17b6bf..bb0b9cbf9d 100644 --- a/django/template/response.py +++ b/django/template/response.py @@ -6,10 +6,6 @@ class ContentNotRenderedError(Exception): pass -class DiscardedAttributeError(AttributeError): - pass - - class SimpleTemplateResponse(HttpResponse): rendering_attrs = ['template_name', 'context_data', '_post_render_callbacks'] @@ -36,7 +32,6 @@ class SimpleTemplateResponse(HttpResponse): # True, so we initialize it to False after the call to super __init__. self._is_rendered = False - def __getstate__(self): """Pickling support function. @@ -54,13 +49,6 @@ class SimpleTemplateResponse(HttpResponse): return obj_dict - def __getattr__(self, name): - if name in self.rendering_attrs: - raise DiscardedAttributeError('The %s attribute was discarded ' - 'when this %s class was pickled.' % - (name, self.__class__.__name__)) - return super(SimpleTemplateResponse, self).__getattr__(name) - def resolve_template(self, template): "Accepts a template object, path-to-template or list of paths" if isinstance(template, (list, tuple)): diff --git a/tests/regressiontests/templates/response.py b/tests/regressiontests/templates/response.py index 0e067405ad..f7bcb60f1b 100644 --- a/tests/regressiontests/templates/response.py +++ b/tests/regressiontests/templates/response.py @@ -9,8 +9,7 @@ from django.conf import settings import django.template.context from django.template import Template, Context from django.template.response import (TemplateResponse, SimpleTemplateResponse, - ContentNotRenderedError, - DiscardedAttributeError) + ContentNotRenderedError) def test_processor(request): return {'processors': 'yes'} @@ -198,7 +197,7 @@ class SimpleTemplateResponseTest(BaseTemplateResponseTest): # ...and requesting any of those attributes raises an exception for attr in template_attrs: - with self.assertRaises(DiscardedAttributeError) as cm: + with self.assertRaises(AttributeError): getattr(unpickled_response, attr) def test_repickling(self): @@ -282,7 +281,7 @@ class TemplateResponseTest(BaseTemplateResponseTest): # ...and requesting any of those attributes raises an exception for attr in template_attrs: - with self.assertRaises(DiscardedAttributeError) as cm: + with self.assertRaises(AttributeError): getattr(unpickled_response, attr) def test_repickling(self): |
