我的Django应用中的master
模板如下所示:
{% block parent %}
Some text...
{% block child %}
Default content here...
{% endblock child %}
...some more text
{% endblock parent %}
现在,应该以{{1}}块更改的方式覆盖此模板:
child
但是,渲染保持不变(在此处打印“默认内容......”)。我是否遗漏了一些明显的东西或嵌套的块不可能? (或者,违反DRY原则,我是否要重新定义{% extends "master.html" %}
{% block child %}
New content here...
{% endblock child%}
块?)
编辑:我正在使用Django 1.1,如果这很重要。
答案 0 :(得分:11)
好的,这是Django模板系统中的一个错误。对于大多数其他案例,本詹姆斯是对的(见他对我上述问题的评论)。
就我而言,child
块位于{% ifnotequal a b %}
块内, 打破块继承。我认为这是一个bug,因为这些操作有很多自然用例。
答案 1 :(得分:1)
这样做:
{% extends "master.html" %}
{% block parent %}
{% block child %}
New content here...
{% endblock child%}
{% endblock parent %}