summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnubhav Joshi <anubhav9042@gmail.com>2014-07-13 14:28:36 +0530
committerTim Graham <timograham@gmail.com>2014-07-24 14:22:19 -0400
commitb1abfb3c59467d0bb088e19be76fc42fcb570835 (patch)
tree7078516079ca9a33ac350c0539d510d4ebfeab38
parent5f919b9c81a26832f98033335a601ec1ca718db7 (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.py5
-rw-r--r--tests/template_tests/tests.py3
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'),