奇怪的模板包含并扩展了Django中的行为

时间:2010-11-17 05:46:02

标签: django templates include extends

大师, 我在这个问题上搜索了很多次,但我几乎找不到任何有用的信息。

假设我们有一个base.html模板:

{% block test %}This is the base!{% endblock %}

下面有2个子模板,a.htmlb.html

a.html:

{% extends "base.html" %}
{% block test %}This is the A!{% endblock %}

b.html

{% extends "base.html" %}
{% block test %}This is the B!{% endblock %}

现在我们有第4个模板root.html

<html>
    <body>
        {% include 'a.html' %}
        {% include 'b.html' %}
        {% include 'base.html' %}
    </body>
</html>

所以当我渲染root.html时,我希望得到像:

  

这是A!这是B!这是基地!

但奇怪的是我得到的总是:

  

这是A!这是A!这是A!

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

好吧,我想我找到了根本原因:djang debug_toolbars插件。 一旦我在settings.py中禁用它,那么一切正常......

这很奇怪,但我想我会将问题发布到插件的问题跟踪列表中。

希望这可以帮助那些遇到同样问题的人

[编辑] 这个错误看起来像是在最新的0.8.4修订版中被修复了,并且在0.8.3时间内让我烦恼不已。