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

标签 python django python-2.7 python-3.x

期望的结果是一个如下所示的导航: 一个 |乙| 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/

相关文章:

python - Ruby/Python - 生成和解析 C/C++ 代码

python - 如何只读取python中字符串列表的一部分

django - 在一台服务器上设置多个 Django 应用程序

python - 不涉及request.POST.getlist的Django admin中间页面_selected_action的正确设置方法是什么?

python - 什么是inf和nan?

对于单个 Unicode 字符串,Python 返回长度为 2

python - 在python中的指定html block 之间提取文本

python - pyodbc for 循环和 commit()

python - Django i18n_patterns : resolve() doesnt work as expected

python - 通过旋转数据框中的数据将具有相同名称的列重新排列为一列