Jinja2有一点逻辑问题,我尝试做的是根据菜单项的名称和是否有会话活动来启用菜单项。,然而,“管理员和帐户项目显示在所有情况下。有趣的是,他们匹配的第二种情况下,如果有一个会话和第三种情况下,如果没有,但我的方式”我正在看第三种情况应该可以完全排除他们。换一双眼睛会很有帮助。
{% if headerinf.nav %}
{% for item in headerinf.nav %}
{% if item.tag == "Home" %}
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{{ item.url }}">*{{ item.tag }}</a>
</li>
{% else %}
{% if (item.tag == "Account" or item.tag == "Admin") and session %}
<li class="nav-item">
<a class="nav-link" href="{{ item.url }}">#{{ item.tag }}</a>
</li>
{% elif (item.tag != "Account" or item.tag != "Admin")%}
<li class="nav-item">
<a class="nav-link" href="{{ item.url }}">&{{ item.tag }}</a>
</li>
{% endif %}
{% endif %}
{% endfor %}
{% else %}
<li class="nav-item active">
<a class="nav-link" href=" ">Nav list missing</a>
</li>
{% endif %}
1条答案
按热度按时间gfttwv5a1#
此
item.tag != "Account" or item.tag != "Admin
始终计算为true,因为item.tag
为一(“True or False”)或另一(“False or True”)或两者都不是(“True or True”)。如果您希望菜单项两者都不是,则or
需要为and
。如果您希望菜单项为一或另一,则!=
需要为=
。