我在类别字段中有 3 个类别。我想在 django 模板中检查它并为 3 个不同的类别分配适当的 url。
我试过:
{% for entry in entries %}
{% if entry.category == 1 %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category }}</li></a>
{% elif entry.category == 2 %}
<a href="{% url 'member:execomember-list' %}"><li>{{ entry.category}}</li></a>
{% else %}
<a href="{% url 'member:lifemember-list' %}"><li>{{ entry.category}}</li></a>
{% endif %}
{% empty %}
<li>No recent entries</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但我知道python只用if检查第一个匹配条件。因此它只给出了一个想要的结果。如何使用正确的链接获取所有三个条目?
编辑:
虽然python只检查第一个匹配的if条件,但当在for循环中使用elif时,它会检查每个条件直到endfor循环。因此,我在下面的回答工作正常。
这是我的工作答案:
{% for entry in entries %}
{% if entry.category == 'General Member' %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category }}</li></a>
{% elif entry.category == 'Executive Committee Member' %}
<a href="{% url 'member:execomember-list' %}"><li>{{ entry.category}}</li></a>
{% else %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category}}</li></a>
{% endif %}
{% empty %}
<li>No recent entries</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
输出的网页视图:
有关更多说明,我使用 django shell 检查了我的代码。查看我的shell的片段:
即使我更改了 if 条件的顺序,结果也保持不变。查看带有输出的 shell 代码:
你看我的代码有什么问题吗?它完全符合python条件并给出了预期的结果。任何人都可以在他们的 django shell 上检查它。
| 归档时间: |
|
| 查看次数: |
22058 次 |
| 最近记录: |