Est-il possible d'accéder au forloop.counter pour la boucle for la plus externe dans le modèle suivant dans Django:
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ item }}</div>
{% endfor %}
{% endfor %}
forloop.counter renvoie le compteur de boucle le plus à l'intérieur de l'exemple ci-dessus
Vous pouvez utiliser forloop.parentloop
pour accéder à l'extérieur forloop
, donc dans votre cas {{forloop.parentloop.counter}}
.
vous pouvez également utiliser avec
Met en cache une variable complexe sous un nom plus simple. Cela est utile lors de l'accès à une méthode "coûteuse" (par exemple, une méthode qui atteint la base de données) plusieurs fois.
{% for outerItem in outerItems %}
{% with forloop.counter as outer_counter %}
{% for item in items%}
<div>{{ outer_counter }}. {{ item }}</div>
{% endfor %}
{% endwith %}
{% endfor %}
si vous utilisez une version haute de Django vous pouvez utiliser
{% with outer_counter = forloop.counter %}
J'ai vérifié, Django 1.4.x - Django 1.9.x supporte les deux méthodes).
c'est plus clair quand il y en a beaucoup pour les boucles