为啥我不能在 if 标记内嵌套块标记?

Posted

技术标签:

【中文标题】为啥我不能在 if 标记内嵌套块标记?【英文标题】: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 条件。

【问题讨论】:

【参考方案1】:

编辑(2010 年 10 月 14 日):

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

原答案:

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

+1 我可能会想出解决方法来使它成为一个 if 块。我也可以尝试构建一个补丁。 这已不再正确也不相关。下面的答案是正确的。 另见***.com/questions/12088222/…

以上是关于为啥我不能在 if 标记内嵌套块标记?的主要内容,如果未能解决你的问题,请参考以下文章