Fixed #28071 -- Fixed {% extends %} origin history.
This commit is contained in:
parent
08bda82c23
commit
be68c0bf63
1
AUTHORS
1
AUTHORS
|
@ -390,6 +390,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
Johann Queuniet <johann.queuniet@adh.naellia.eu>
|
Johann Queuniet <johann.queuniet@adh.naellia.eu>
|
||||||
john@calixto.net
|
john@calixto.net
|
||||||
John D'Agostino <john.dagostino@gmail.com>
|
John D'Agostino <john.dagostino@gmail.com>
|
||||||
|
John D'Ambrosio <dambrosioj@gmail.com>
|
||||||
John Huddleston <huddlej@wwu.edu>
|
John Huddleston <huddlej@wwu.edu>
|
||||||
John Moses <moses.john.r@gmail.com>
|
John Moses <moses.john.r@gmail.com>
|
||||||
John Paulett <john@paulett.org>
|
John Paulett <john@paulett.org>
|
||||||
|
|
|
@ -103,7 +103,7 @@ class ExtendsNode(Node):
|
||||||
without extending the same template twice.
|
without extending the same template twice.
|
||||||
"""
|
"""
|
||||||
history = context.render_context.setdefault(
|
history = context.render_context.setdefault(
|
||||||
self.context_key, [context.template.origin],
|
self.context_key, [self.origin],
|
||||||
)
|
)
|
||||||
template, origin = context.template.engine.find_template(
|
template, origin = context.template.engine.find_template(
|
||||||
template_name, skip=history,
|
template_name, skip=history,
|
||||||
|
|
|
@ -117,3 +117,24 @@ class ExtendsBehaviorTests(SimpleTestCase):
|
||||||
template = engine.get_template('base.html')
|
template = engine.get_template('base.html')
|
||||||
output = template.render(Context({}))
|
output = template.render(Context({}))
|
||||||
self.assertEqual(output.strip(), 'loader2 loader1')
|
self.assertEqual(output.strip(), 'loader2 loader1')
|
||||||
|
|
||||||
|
def test_block_override_in_extended_included_template(self):
|
||||||
|
"""
|
||||||
|
ExtendsNode.find_template() initializes history with self.origin
|
||||||
|
(#28071).
|
||||||
|
"""
|
||||||
|
engine = Engine(
|
||||||
|
loaders=[
|
||||||
|
['django.template.loaders.locmem.Loader', {
|
||||||
|
'base.html': "{% extends 'base.html' %}{% block base %}{{ block.super }}2{% endblock %}",
|
||||||
|
'included.html':
|
||||||
|
"{% extends 'included.html' %}{% block included %}{{ block.super }}B{% endblock %}",
|
||||||
|
}],
|
||||||
|
['django.template.loaders.locmem.Loader', {
|
||||||
|
'base.html': "{% block base %}1{% endblock %}{% include 'included.html' %}",
|
||||||
|
'included.html': "{% block included %}A{% endblock %}",
|
||||||
|
}],
|
||||||
|
],
|
||||||
|
)
|
||||||
|
template = engine.get_template('base.html')
|
||||||
|
self.assertEqual(template.render(Context({})), '12AB')
|
||||||
|
|
Loading…
Reference in New Issue