Z identycznym problemem zderzył się autor poniższego wpisu:
Od niego uprzejmie zapożyczyłem rozwiązanie.
W moim przypadku był potrzebny licznik w Jinja2, W krótkich żołnierskich słowach:
to nie działa:
{% set myCounter = 0 %}
Before loop:
myCounter: {{ myCounter }}
{% set myCounter = 0 %}
{% for i in range(3) %}
{% for j in range(3) %}
{% set myCounter = myCounter + 1 %}
myCounter: {{ myCounter }}
{% endfor %}
{% endfor %}
After loop:
myCounter: {{ myCounter }}
I daje wynik:
Before loop:
myCounter: 0
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
myCounter: 1
After loop:
myCounter: 0
Natomiast to działa wybornie:
{% set myCounter = { 'index': 0 } %}
Before loop:
myCounter: {{ myCounter.index }}
{% for i in range(3) %}
{% for j in range(3) %}
{% if myCounter.update({'index': myCounter.index + 1 }) %}{% endif %}
myCounter: {{ myCounter.index }}
{% endfor %}
{% endfor %}
After loop:
myCounter: {{ myCounter.index }}
i daje żądany rezultat:
Before loop:
myCounter: 0
myCounter: 1
myCounter: 2
myCounter: 3
myCounter: 4
myCounter: 5
myCounter: 6
myCounter: 7
myCounter: 8
myCounter: 9
After loop:
myCounter: 9