2010-03-24 6 views
11

Alle,Schritt eine Variable in django Vorlagen

Wie können wir einen Wert wie die folgende in django Vorlagen erhöhen,

{{ flag =0 }} 

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

Dank ..

Antwort

18

Ich glaube nicht, dass es Sie bestimmt ist sollte Daten in Ihren Vorlagen ändern. In Ihrem speziellen Fall könnten Sie stattdessen die Variable forloop.counter verwenden.

Zum Beispiel:

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

Beachten Sie auch, dass ich diese Zahl auf die id Attribute des <input /> Tag hinzugefügt. Andernfalls haben Sie mehrere Eingänge mit derselben ID.

EDIT: Ich habe nicht bemerkt, dass es ein Radio-Eingang war. Sie könnten natürlich für jede <input type="radio" /> denselben Namen haben.

7

Sie können dies explizit nicht in einer Vorlage tun. Die Variablenzuweisung ist nicht erlaubt.

Wenn Sie jedoch nur einen Zähler in Ihrer Schleife haben möchten, müssen Sie nur {{ forloop.counter }} verwenden.

3

Vielleicht möchten Sie auch in Django forms diese Werte produzieren

aussehen