期望的结果是一个如下所示的导航: 一个 |乙| C | d |电子| ... | X |是 | Z
请注意,A 和 Z 的外侧都没有管道。
这是我目前拥有的模板。
<section id="partners_nav">
<div class="row">
<table align="center" cellpadding="4px">
<tr>
{% for key, value in index.items %}
{% if key in index|last %}
{% if value == None %}
<td>{{ key }}</td>
<td id="partners_nav_bracket">|</td>
{% else %}
<td><a href="{{ value }}">{{ key }}</a></td>
<td id="partners_nav_bracket">|</td>
{% endif %}
{% else %}
{% if value == None %}
<td>{{ key }}</td>
<td id="partners_nav_bracket">|</td>
{% else %}
<td><a href="{{ value }}">{{ key }}</a></td>
<td id="partners_nav_bracket">|</td>
{% endif %}
{% endif %}
{% endfor %}
</tr>
</table>
</div>
行 {% if key in index|last %} 是我尝试检查它是否是迭代中的最后一项的位置。
这不会产生任何错误。但不会删除字母 Z 右侧的管道。
注意: 索引内部是一个有序字典,其中字母表中的每个字母都有一个键。其中一些键的值也是字母(相同的字母)...这是使用 A |乙| C 作为跳转到页面顶部的导航。其余键的值为 None...因此该字母仍显示在页面顶部,但不可点击
最佳答案
您可能想检查forloop.last
模板变量。如果这是最后一次循环,则返回 True:
{% for key, value in index.items %}
...
{% if value %}
<td><a href="{{ value }}">{{ key }}</a></td>
{% else %}
<td>{{ key }}</td>
{% endif %}
{% if not forloop.last %}
<td id="partners_nav_bracket">|</td>
{% endif %}
...
{% endfor %}
关于python - 如何检查迭代的内容是否是字典中的最后一个键/值? (可能需要在django模板中完成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062062/