Saltar al contenido

¿Cómo incrementar una variable en un bucle for en la plantilla jinja?

Solución:

Podrías usar loop.index:

{% for i in p %}
  {{ loop.index }}
{% endfor %}

Consulte la documentación del diseñador de plantillas.

En versiones más recientes, debido a las reglas de alcance, lo siguiente no trabaja:

{% set count = 1 %}
{% for i in p %}
  {{ count }}
  {% set count = count + 1 %}
{% endfor %}

Después de 2.10, para resolver el problema del alcance, puede hacer algo como esto:

{% set count = namespace(value=0) %}
{% for i in p %}
  {{ count.value }}
  {% set count.value = count.value + 1 %}
{% endfor %}

Como dice Jeroen, hay problemas de alcance: si establece ‘recuento’ fuera del ciclo, no puede modificarlo dentro del ciclo.

Puede vencer este comportamiento utilizando un objeto en lugar de un escalar para ‘recuento’:

{% set count = [1] %}

Ahora puede manipular el recuento dentro de un bucle forloop o incluso un% include%. Así es como incremento el recuento (sí, es tonto, pero bueno):

{% if count.append(count.pop() + 1) %}{% endif %} {# increment count by 1 #}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *