2010-03-24 5 views
11

Tous,incrément d'une variable dans les modèles de django

Comment peut-on incrémente une valeur comme ce qui suit dans les modèles de django,

{{ flag =0 }} 

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

merci ..

Répondre

18

Je ne pense pas qu'il vous prévu devrait modifier les données dans vos modèles. Dans votre cas, vous pouvez utiliser la variable forloop.counter.

Par exemple:

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

Notez également que j'ai ajouté ce nombre aux id attributs de la balise <input />. Sinon, vous aurez plusieurs entrées avec le même identifiant.

EDIT: Je n'ai pas noté qu'il s'agissait d'une entrée radio. Vous pourriez bien sûr avoir le même nom pour chaque <input type="radio" />.

7

Vous ne pouvez explicitement pas le faire dans un modèle. L'affectation de variable n'est pas autorisée.

Toutefois, si vous ne voulez qu'un compteur dans votre boucle, il vous suffit d'utiliser {{ forloop.counter }}.

3

Vous pouvez également chercher à avoir Django forms produire ces valeurs

Questions connexes