Je voudrais faire quelque chose comme :
La variable p provient de test.py qui est une liste ['a', 'b', 'c', 'd'].
{% for i in p %}
{{variable++}}
{{variable}}
La sortie du résultat est :
1 2 3 4
Je voudrais faire quelque chose comme :
La variable p provient de test.py qui est une liste ['a', 'b', 'c', 'd'].
{% for i in p %}
{{variable++}}
{{variable}}
La sortie du résultat est :
1 2 3 4
Je luttais contre ce comportement aussi. Je voulais changer la classe de div dans Jinja en fonction du compteur. J'ai été surpris que la méthode pythonique ne fonctionne pas. Le code suivant réinitialisait mon compteur à chaque itération, et je n'avais donc qu'une classe rouge.
{% if sloupec3: %}
{% set counter = 1 %}
{% for row in sloupec3: %}
{% if counter == 3 %}
{% set counter = 1 %}
{% endif %}
{% if counter == 1: %}
<div class="red"> some red div </div>
{% endif %}
{% if counter == 2: %}
<div class="gray"> some gray div </div>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
{% endif %}
J'ai utilisé loop.index comme ça et ça marche :
{% if sloupec3: %}
{% for row in sloupec3: %}
{% if loop.index % 2 == 1: %}
<div class="red"> some red div </div>
{% endif %}
{% if loop.index % 2 == 0: %}
<div class="gray"> some gray div </div>
{% endif %}
{% endfor %}
{% endif %}
Je suis venu chercher la façon dont Django fait cela et j'ai trouvé cet article. Peut-être que quelqu'un d'autre a besoin de la solution de Django qui vient ici.
{% for item in item_list %}
{{ forloop.counter }} {# starting index 1 #}
{{ forloop.counter0 }} {# starting index 0 #}
{# do your stuff #}
{% endfor %}
Plus d'informations ici : https://docs.djangoproject.com/en/1.11/ref/templates/builtins/
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.