diff options
| author | Anubhav Joshi <anubhav9042@gmail.com> | 2014-07-13 14:28:36 +0530 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-07-24 14:22:19 -0400 |
| commit | b1abfb3c59467d0bb088e19be76fc42fcb570835 (patch) | |
| tree | 7078516079ca9a33ac350c0539d510d4ebfeab38 | |
| parent | 5f919b9c81a26832f98033335a601ec1ca718db7 (diff) | |
Fixed #21707 -- Added helpful error message when using {{ block.super }} in base template.
Thanks mitar for the suggestion.
| -rw-r--r-- | django/template/loader_tags.py | 5 | ||||
| -rw-r--r-- | tests/template_tests/tests.py | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/django/template/loader_tags.py b/django/template/loader_tags.py index 77508a7663..1480e5e193 100644 --- a/django/template/loader_tags.py +++ b/django/template/loader_tags.py @@ -68,6 +68,11 @@ class BlockNode(Node): return result def super(self): + if not hasattr(self, 'context'): + raise TemplateSyntaxError( + "'%s' object has no attribute 'context'. Did you use " + "{{ block.super }} in a base template?" % self.__class__.__name__ + ) render_context = self.context.render_context if (BLOCK_CONTEXT_KEY in render_context and render_context[BLOCK_CONTEXT_KEY].get_block(self.name) is not None): diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py index e785962c21..84b6592f57 100644 --- a/tests/template_tests/tests.py +++ b/tests/template_tests/tests.py @@ -881,6 +881,9 @@ class TemplateTests(TestCase): # Raise exception for custom tags used in child with {% load %} tag in parent, not in child 'exception04': ("{% extends 'inheritance17' %}{% block first %}{% echo 400 %}5678{% endblock %}", {}, template.TemplateSyntaxError), + # Raise exception for block.super used in base template + 'exception05': ("{% block first %}{{ block.super }}{% endblock %}", {}, template.TemplateSyntaxError), + ### FILTER TAG ############################################################ 'filter01': ('{% filter upper %}{% endfilter %}', {}, ''), 'filter02': ('{% filter upper %}django{% endfilter %}', {}, 'DJANGO'), |
