为什么我不能在if标签中嵌套块标签?

时间:2009-06-03 02:25:50

标签: django templates django-templates tags

我有一个名为base.html的主模板文件,其中包含以下代码:

{% ifequal environment "dev" %}
    {% block stylesheets %}{% endblock %}
{% endifequal %}

我在其他模板中继承了这个并执行以下操作:

{% block stylesheets %}
    <link ... >
{% endblock %}

问题是,我链接的样式表永远不会被应用,无论是否在基数中满足ifequal条件,样式表块似乎都会被忽略。

2 个答案:

答案 0 :(得分:18)

编辑(2010年10月14日):

根据this comment关于Django的票证,原始问题标题不再正确。

原始答案:

我不知道为什么不这样做,但你可以做到:

{% block stylesheets %}
    {% ifequal environment "dev" %}
        ... something ....
    {% else %}
        {{ block.super }}
    {% endifequal %}
{% endblock %}

重新考虑了一下 - 我想这意味着在你的每个模板中重复这个逻辑,这是相当令人不满意的,但无论如何我都会留下这个答案。我已经快速查看了Django门票,找不到任何相关内容。

答案 1 :(得分:6)

此问题不再相关 - 从r12655开始,您可以在有条件的范围内嵌套块标记。