Django中奇怪的模板include和extends行为

3
大家好, 我在谷歌上搜索了很多次这个问题,但几乎找不到有用的信息。
假设我们有一个名为base.html的模板:
{% block test %}This is the base!{% endblock %}

在此之下有两个子模板,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 %}

现在我们有第四个模板,名为root.html
<html>
    <body>
        {% include 'a.html' %}
        {% include 'b.html' %}
        {% include 'base.html' %}
    </body>
</html>

当我渲染root.html时,我希望得到以下内容:

这是A!这是B!这是Base!

但奇怪的是,我总是得到以下内容:

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

这是为什么呢?在IT技术方面,您可能需要检查代码逻辑和变量赋值。
1个回答

2

好的,我想我找到了根本原因:是djang debug_toolbars插件。 一旦我在settings.py中禁用它,一切都能正常工作...

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

希望这可以帮助遇到相同问题的人

[编辑] 这个bug似乎已经在最新的0.8.4修订版中得到了修复,在0.8.3时它一直困扰着我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接