Понадобилось мне тут создать флаг в цикле, который можно использовать где нибудь потом в шаблоне. По логике все должно выглядеть примерно так:
{% set exists = 0 %} {% for i in range(5) %} {% if True %} {% set exists = 1 %} {% endif %} {% endfor %} {% if exists %} <!-- exists is true --> {% endif %}
Но такой код не фурычит! exist всегда будет 0. Это особенность области
видимости переменных в Jinja при присваивании.
Поэтому есть небольшой хак как это поправить:
{% set exists = [] %} {% for i in range(5) %} {% if True %} {% do exists.append(1) %} {% endif %} {% endfor %} {% if exists %} <!-- exists is true --> {% endif %}
Решение взято от сюда.