Django模板中的嵌套块

时间:2009-12-14 13:21:56

标签: django templates django-templates nested

我的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,如果这很重要。

2 个答案:

答案 0 :(得分:11)

好的,这是Django模板系统中的一个错误。对于大多数其他案例,本詹姆斯是对的(见他对我上述问题的评论)。

就我而言,child块位于{% ifnotequal a b %}块内, 打破块继承。我认为这是一个bug,因为这些操作有很多自然用例。

The corresponding ticket

答案 1 :(得分:1)

这样做:

{% extends "master.html" %}

{% block parent %}
    {% block child %}
        New content here...
    {% endblock child%}
{% endblock parent %}