mirror of
https://github.com/django/django.git
synced 2025-03-06 07:22:32 +00:00
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
|
return result
|
||||||
|
|
||||||
def super(self):
|
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
|
render_context = self.context.render_context
|
||||||
if (BLOCK_CONTEXT_KEY in render_context and
|
if (BLOCK_CONTEXT_KEY in render_context and
|
||||||
render_context[BLOCK_CONTEXT_KEY].get_block(self.name) is not None):
|
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
|
# 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),
|
'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 ############################################################
|
### FILTER TAG ############################################################
|
||||||
'filter01': ('{% filter upper %}{% endfilter %}', {}, ''),
|
'filter01': ('{% filter upper %}{% endfilter %}', {}, ''),
|
||||||
'filter02': ('{% filter upper %}django{% endfilter %}', {}, 'DJANGO'),
|
'filter02': ('{% filter upper %}django{% endfilter %}', {}, 'DJANGO'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user