Quiero cambiar el valor de la variable declarada fuera del bucle dentro de un bucle. Pero siempre cambiando, mantiene el valor inicial fuera del ciclo.Jinja2: Cambia el valor de una variable dentro de un bucle
{% set foo = False %}
{% for item in items %}
{% set foo = True %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
Esto hace:
Ok(1)!
Así que la única solución de (mala) han encontrado hasta el momento era la siguiente:
{% set foo = [] %}
{% for item in items %}
{% if foo.append(True) %} {% endif %}
{% if foo %} Ok(1)! {% endif %}
{% endfor %}
{% if foo %} Ok(2)! {% endif %}
Esto hace:
Ok(1)!
Ok(2)!
Pero, ¡es muy feo! ¿Hay alguna otra solución más elegante?
No creo que hay alguna otra manera. Tal vez podrías reestructurar el código para que no necesites configurar la variable. –
+1 para la pregunta, ya que se convirtió en respuesta para mí :) –
@Shankar Cabus: gran pregunta. Esto probablemente debería clasificarse en 'Jinja Annoyances' – dreftymac