2010-03-24 13 views
11

Tutti,incremento una variabile nei modelli di Django

Come possiamo incrementare un valore simile al seguente nei modelli Django,

{{ flag =0 }} 

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

grazie ..

risposta

18

Non credo che ti è destinato dovrebbe alterare i dati nei tuoi modelli. Nel caso specifico, potresti invece utilizzare la variabile forloop.counter.

Ad esempio:

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

Si noti inoltre che ho aggiunto che il numero per le id attributi del tag <input />. Altrimenti avrai più input con lo stesso id.

MODIFICA: non ho notato che si trattava di un ingresso radio. Ovviamente potresti avere lo stesso nome per ogni <input type="radio" />.

7

È esplicitamente impossibile farlo in un modello. L'assegnazione variabile non è consentita.

Tuttavia, se tutto ciò che si desidera è un contatore nel proprio ciclo, è sufficiente utilizzare {{ forloop.counter }}.

3

Si potrebbe anche voler fare in modo che Django forms produca questi valori