为啥我不能在 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 标记内嵌套块标记?的主要内容,如果未能解决你的问题,请参考以下文章

内联标记块 (@<p>Content</p>) 不能嵌套。只允许一级内联标记

RegEx删除嵌套在bbcode标记内的bbcode标记

为啥我不能使用 folium.Map() 函数在地图中标记值列表?

绝不能对非动态分配存储块使用free,也不能对同一块内存区同时用free释放两次,为啥?free函数原理是?

Haml';嵌套在标记内';错误

为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?