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

Python 如何检查迭代的内容是否是dict中的最后一个键/值?(可能需要在django模板中完成),python,django,python-2.7,python-3.x,Python,Django,Python 2.7,Python 3.x,理想的结果是一个如下所示的导航: A | B | C | D | E |……|X | Y | Z 请注意,A和Z的外侧都没有管道 这是我目前拥有的模板 <section id="partners_nav"> <div class="row"> <table align="center" cellpadding="4px"> <tr> {% for key, value in index.items %}

理想的结果是一个如下所示的导航: A | B | C | D | E |……|X | Y | 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>

{键为%,索引中的值为%items%}
{如果索引中的键为%last%}
{%if value==None%}
{{key}}
|
{%else%}
|
{%endif%}
{%else%}
{%if value==None%}
{{key}}
|
{%else%}
|
{%endif%}
{%endif%}
{%endfor%}

行{%if索引中的键| last%}是我试图检查它是否是迭代中的最后一项的地方

这不会产生任何错误。但不会删除字母Z右侧的管道

注: 索引的内部是一个有序字典,字母表中的每个字母都有一个键。其中一些键的值也是一个字母(同一个字母)。。。这是使用A | B | C作为页面顶部导航的跳转。其余键的值为None。。。因此,字母仍显示在页面顶部,但不可单击

您可能需要检查模板变量。如果是最后一次通过循环,则返回
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 %}
{%用于键,index.items%中的值]
...
{%if值%}
{%else%}
{{key}}
{%endif%}
{%if不是forloop.last%}
|
{%endif%}
...
{%endfor%}

您可以使用
forloop.first
forloop.last

<div class="row">
    <table align="center" cellpadding="4px">
        <tr>
        {% for key, value in index.items %}
            {% if value == None %}
                <td>{{ key }}</td>
            {% else %}
                <td><a href="{{ value }}">{{ key }}</a></td>
            {% endif %}

            {% if not forloop.last %}
                <td id="partners_nav_bracket">|</td>
            {% endif %}
        {% endfor %}
        </tr>
    </table>
</div>

{键为%,索引中的值为%items%}
{%if value==None%}
{{key}}
{%else%}
{%endif%}
{%if不是forloop.last%}
|
{%endif%}
{%endfor%}

我还清理了你的标记,因为你的
if
else
的内容是相同的。

索引
中有什么?可能
{%if-forloop.first%}
{%if-forloop.last%}
是否有帮助?@OzgurVatansever索引中有一个有序的字典,它对字母表中的每个字母都有一个键。其中一些键的值也是一个字母(同一个字母)。。。这是使用A | B | C作为页面顶部导航的跳转。其余键的值为None。。。因此,这封信仍然显示在页面顶部,但无法单击。感谢您的清理!现在,我们应该做些道德上正确的事情。接受你的答案,或者之前的其他人。你清理了标记,名声也变小了。