2016-06-04 5 views
0

Ich habe ein Auswahlfeld, das seinen ausgewählten Wert auch nach einem Fehler behalten soll (z. B. ein erforderliches Feld ist leer), aber es kann nicht mit dem aktuellen Wert übereinstimmen.Django Formular ausgewählte Option nicht erkannt, fehlgeschlagen wenn Anweisung

<label for="{{ form.movie.id_for_label }}" class="col-sm-3 control-label">Movie:</label> 
<select id="{{ form.movie.id_for_label }}" name="movie" class="form-control"> 
{% for x,y in form.fields.movie.choices %} 
    <option value="{{ x }}"{% if form.movie.value == x %} selected="selected"{% endif %}>{{ y }}</option> 
{% endfor %} 

Wenn I den Wert 2, so wird nach einem Fehler wählen hat die form.movie.value den Wert 2, aber in dem Code in thy Schleife, wenn x = 2, wird die Gleichung nicht gib wahr zurück, also wird kein ausgewählter Wert beibehalten.

Warum ist es, wo ist das Problem?

Antwort

0

Das Problem ist, dass form.fields.movie.choices liefert die ID als Zahl (int i guess), und die Daten in form.movie.value ist ein String, so zu vergleichen Sie die beiden die x Bedürfnisse wie so bespannen gegossen werden: x | String: „s“, und dann können die beiden ohne Probleme verglichen werden.

Verwandte Themen