¿Cómo verifico la última iteración del bucle en la plantilla de Django?

100

Tengo una pregunta básica, en el lenguaje de plantilla de Django, ¿cómo puede saber si está en la última iteración de bucle en un forbucle?

Daniel Kivatinos
fuente

Respuestas:

228

Usarías forloop.last. Por ejemplo:

<ul>
{% for item in menu_items %}
    <li{% if forloop.last %} class='last'{% endif %}>{{ item }}</li>
{% endfor %}
</ul>
Paolo Bergantino
fuente
2
Si hay bucles anidados, ¿comprobará el bucle más interno?
Tagar
4
¿Es esta una característica de una versión más reciente de Jinja? Obteniendo la "plantilla de representación: 'forloop' no está definida" en {% if not (forloop.last)%}, {% endif%}
Tagar
1
Si hay bucles anidados, use forloop.parentlooppara acceder al bucle que rodea al actual. Entonces, para verificar la última iteración de un bucle principal, se podría usar forloop.parentloop.last. Consulte la documentación . @Tagar
ndmeiri
Entonces, en resumen, forloop.lastverificará la última iteración del bucle más interno.
ndmeiri
12

{{forloop.last}}

fuentesjr
fuente