mirror of https://github.com/django/django.git
Fixed #21707 -- Added helpful error message when using {{ block.super }} in base template.
Thanks mitar for the suggestion.
This commit is contained in:
parent
5f919b9c81
commit
b1abfb3c59
|
@ -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):
|
||||
|
|
|
@ -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'),
|
||||
|
|
Loading…
Reference in New Issue