编辑:我已经将测试用例重写为绝对最小化: file' test.html':
{% extends "testbase.html" %}
{% with greeting="Hi" %}
{% block content %} {{ greeting }} {% endblock %}
{% endwith %}
file' testbase.html':
<html>
<body>
{% block content %} {% endblock %}
</body>
</html>
在呈现test.html时,会生成以下HTML输出:
<html>
<body>
</body>
</html>
当with
和block content
的嵌套被颠倒以便with
在里面时,&#34;嗨&#34;被渲染。我的模板有问题吗?什么样的问题可能导致这种情况?怎么可以诊断这个?我在python Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
答案 0 :(得分:0)
看起来它不应该像那样工作,从django-users问题完全像我的(下图)。基本上,似乎在父模板的上下文中评估子模板块内容。如果我将with
语句放在父模板中,并将{{greeting}}
放在子块内容中,那么&#34;嗨&#34;出现。
我不认为你所描述的内容与{%有关 带有%}标签。您在这里处理子模板 - 以{%extends%}标记开头的标记。子模板中{%block%}标记之外的任何内容都不会对渲染产生任何影响 模板。子模板只提供块内容以覆盖 什么在父模板中指定,所以一切都在 子模板必须包含在{%block%}标记内。 (如果不是 在{%block%}内指定,它应该放在父级中 模板?)见: