2010-03-24 24 views
11

Todo,incremento de una variable en las plantillas de Django

¿Cómo podemos incrementar un valor como el siguiente en las plantillas de Django,

{{ flag =0 }} 

    {% for op in options %} 
    {{op.choices}}<input type="radio" name="template" id="template" value="template{{flag++}}"/> 
    {% endfor %} 

gracias ..

Respuesta

18

No creo que le está destinado debe alterar los datos en sus plantillas. En su caso específico, podría usar la variable forloop.counter.

Por ejemplo:

{% for op in options %} 
    {{op.choices}}<input type="radio" name="template" id="template{{forloop.counter}}" value="template{{forloop.counter}}"/> 
{% endfor %} 

También tenga en cuenta que agregué ese número a los id atributos de la etiqueta <input />. De lo contrario, tendrá múltiples entradas con la misma identificación.

EDITAR: No noté que era una entrada de radio. Por supuesto, podría tener el mismo nombre para cada <input type="radio" />.

7

Usted explícitamente no puede hacer eso en una plantilla. La asignación de variables no está permitida.

Sin embargo, si todo lo que quiere es un contador en su bucle, solo necesita usar {{ forloop.counter }}.

3

Es posible que desee considerar tener Django forms producir estos valores

Cuestiones relacionadas