Django模板每次都返回True

Posted

技术标签:

【中文标题】Django模板每次都返回True【英文标题】:Django templates sting comprasion every time returns True 【发布时间】:2017-08-19 12:36:22 【问题描述】:

如果我转到索引或公告页面,我将分别使用“索引”或“公告”页面名称发送到模板 embed_text。它应该将活动类设置为导航栏中的当前链接。 As shown in the picture (movies is my index page)

这是我在 index.html 模板中的代码

% if embed_text.page_name == 'index' %
    % block movies_active %active% endblock %
% endif %
% if embed_text.page_name == 'announcements' %
    % block announcements_active %active% endblock %
% endif %

而且是base.html模板中的代码延伸到index.html

<li class="% block movies_active %% endblock %"><a href="% url 'movies:index' %"> Movies</a></li>
<li class="% block announcements_active %% endblock %"><a href="% url 'movies:announcements' %"> Announcemets</a></li>

因此,每次两个表达式都返回 True 并将两个链接都设置为活动时,您可以在图片中看到它。我知道,我遗漏了一个小细节。请帮忙解决。

【问题讨论】:

【参考方案1】:

block 标签不受if 标签的影响。你可以试试这个。

% block movies_active %% if embed_text.page_name == 'index' %active% endif %% endblock %
% block announcements_active %% if embed_text.page_name == 'announcements' %active% endif %% endblock %

【讨论】:

以上是关于Django模板每次都返回True的主要内容,如果未能解决你的问题,请参考以下文章

将进度返回到 Django 中每个值更改的模板

如何在Django视图中使用for循环返回每次迭代[关闭]

每次nginx重启后Django查询都返回空

django forms is_valid() 方法总是返回 true 如果所有表单字段的要求都是 false

缺少变量值时 Django 模板中的 Javascript 语法错误

Django:与模板变量一起返回模板