【问题标题】:Why can't I nest a block tag inside an if tag?为什么我不能在 if 标记内嵌套块标记?
【发布时间】:2010-10-30 21:04:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: django templates django-templates tags


    【解决方案1】:

    编辑(2010 年 10 月 14 日):

    原来的问题标题不再正确,根据 Django 票上的this comment

    原答案:

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

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

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

    【讨论】:

      【解决方案2】:

      这个问题不再相关 - 从r12655 开始,您可以在条件中嵌套块标记。

      【讨论】:

      • +1 我可能会想出解决方法来使它成为一个 if 块。我也可以尝试构建一个补丁。
      • 这已不再正确也不相关。下面的答案是正确的。
      猜你喜欢
      • 2013-11-23
      • 2012-08-07
      • 2012-05-27
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多