Compteur pour une boucle for dans un template avec Django

Published: 01 octobre 2014

DMCA.com Protection Status

Avec django il est possible d'avoir un compteur pour une boucle for dans un template en utilisant la syntaxe suivante: forloop.counter, exemple:

{% for i in Mylist %}
    {{forloop.counter}}
{% endfor %}

qui va afficher:

1
2
3
.
.
.

Il est possible d'avoir un compteur qui commence avec 0 plutôt que 1 (par défaut). Dans ce cas il faut utiliser la symtaxte suivante:

{{forloop.counter0}}

pour avoir

0
1
2
3
.
.
.

Note: Dans le cas d'une boucle dans une autre boucle il est également possible d'obtenir un compteur correspond à la boucle parente en utilisant {{forloop.parentloop.counter}}:

{% for i in Mylist1 %}
{% for j in Mylist2 %}
    {{forloop.counter}},{{forloop.parentloop.counter}}
{% endfor %} 
{% endfor %}

donne:

1,1
2,1
3,1
.
.
.
1,2
2,2
3,2
.
.
.

Recherches associées

Liens Site
Django built-in Django doc
Django - iterate number in for loop of a template stackoverflow
How to access outermost forloop.counter with nested for loops in Django templates? stackoverflow
Python Django Template: Iterate Through List stackoverflow
how to iterate through dictionary in a dictionary in django template? stackoverflow