How do I check for last loop iteration in Django template?

Viewed 60255

I have a basic question, in the Django template language how can you tell if you are at the last loop iteration in a for loop?

3 Answers

You would use forloop.last. For example:

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

You can basically use this logic in a for loop:

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

For example, if you need to put a comma after each item except for the last one, you can use this snippet:

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

which will become for a list with three items:

first_item, second_item, third_item
Related