sqlite 使用Jinja2模板在Flask中处理列表时出现问题

klr1opcd  于 2023-03-19  发布在  SQLite
关注(0)|答案(1)|浏览(196)

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 %}
gfttwv5a

gfttwv5a1#

item.tag != "Account" or item.tag != "Admin始终计算为true,因为item.tag为一(“True or False”)或另一(“False or True”)或两者都不是(“True or True”)。如果您希望菜单项两者都不是,则or需要为and。如果您希望菜单项为一或另一,则!=需要为=

相关问题