Skip to main content
 首页 » 编程设计

python之如何检查迭代的内容是否是字典中的最后一个键/值 (可能需要在 django 模板中完成)

2024年08月19日25lyj

期望的结果是一个看起来像这样的导航: 一个 |乙 |丙 | D |乙 | ... | × |是 | 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 %}