【问题标题】:How do I check for last loop iteration in Django template?如何检查 Django 模板中的最后一个循环迭代?
【发布时间】:2010-10-24 15:31:57
【问题描述】:

我有一个基本问题,在 Django 模板语言中,如何判断您是否处于 for 循环中的最后一次循环迭代?

【问题讨论】:

    标签: django for-loop django-templates


    【解决方案1】:

    您将使用forloop.last。例如:

    <ul>
    {% for item in menu_items %}
        <li{% if forloop.last %} class='last'{% endif %}>{{ item }}</li>
    {% endfor %}
    </ul>
    

    【讨论】:

    • 如果有嵌套循环,会检查最里面的循环吗?
    • 这是 Jinja 较新版本的功能吗?在 {% if not(forloop.last) %} 上获取“渲染模板:'forloop' 未定义”,{% endif %}
    • 如果有嵌套循环,请使用forloop.parentloop 访问当前循环周围的循环。因此,要检查父循环的最后一次迭代,可以使用forloop.parentloop.last。请参阅documentation。 @Tagar
    • 所以,简而言之,forloop.last 将检查最内层循环的最后一次迭代。
    【解决方案2】:

    {{ forloop.last }}

    【讨论】:

      【解决方案3】:

      您基本上可以在for 循环中使用此逻辑:

      {% if forloop.last %}
         # Do something here
      {% endif %}
      

      例如,如果你需要在除最后一项之外的每一项后加逗号,你可以使用这个sn-p:

        {% for item in item_list %}
          {% if forloop.last %}
              {{ item }}
          {% else %}
               {{ item }},
          {% endif %}
        {% endfor %}
      

      这将成为一个包含三个项目的列表:

      first_item, second_item, third_item
      

      【讨论】:

        猜你喜欢
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 2017-10-13
        • 2021-08-24
        • 2019-12-22
        • 1970-01-01
        • 2018-02-06
        相关资源
        最近更新 更多