Jinja2: изменить значение переменной внутри цикла

Я хочу изменить значение переменной, объявленной вне цикла внутри цикла. Но всегда меняясь, он сохраняет исходное значение вне цикла.

{% set foo = False %}

{% for item in items %}
  {% set foo = True %}
  {% if foo %} Ok(1)! {% endif %}
{% endfor %}

{% if foo %} Ok(2)! {% endif %}

Это отображает:

Ok(1)!

Итак, единственное (плохое) решение, которое было найдено до сих пор, было следующее:

{% set foo = [] %}

{% for item in items %}
  {% if foo.append(True) %} {% endif %}
  {% if foo %} Ok(1)! {% endif %}
{% endfor %}

{% if foo %} Ok(2)! {% endif %}

Это отображает:

Ok(1)!
Ok(2)!

Но это очень уродливо! Есть ли другое более элегантное решение?

62
задан Shankar Cabus 28 February 2012 в 17:05
поделиться