Ich habe diese Form:Anfangswert für django Form Auswahlfeld ignoriert
class UserUsesSourceForm(forms.Form):
# some fields here
username = forms.CharField(label=("Username"), max_length=30, help_text = ("Required"))
provider = forms.ChoiceField(widget=forms.Select(), choices=SOURCES_CHOICES, initial=SOURCES_CHOICES[1])
Die verfügbaren Optionen sind:
E = 'e'
A = 'a'
SOURCES_CHOICES = (
(A, 'A'),
(E, 'E'),
)
Aussicht:
form = UserUsesSourceForm(initial={"username":request.user.username, 'provider':SOURCES_CHOICES[1]})return render_to_response('update_datasource.html', context_instance=RequestContext(request, params))
Und die Vorlage:
<form action="" method="post">
{% csrf_token %}
{% if form.non_field_errors %}
<p>
{% for error in form.non_field_errors %}
<div class="text-error">{{ error|escape }}</div>
{% endfor %}
</p>
{% endif %}
<div class="control-group">
<label class="control-label" for="id_provider">Data source</label>
<div class="controls">
{{form.provider}}
</div>
</div>
</form>
Das Problem ist, dass, selbst wenn der Anfangswert korrekt festgelegt ist, und ich es im Debug testen kann (dh der Initialwert des Formulars "Provider" ist das Tupel, das ich will), das letzte HTML immer das erste Element in der Auswahlfeld:
<select name="provider" id="id_provider">
<option value="A">A</option>
<option value="E">E</option>
</select>
..while ich erwarten würde es eine "default" oder "aktiv" Option haben. Bitte beachten Sie, dass der Benutzername Feld korrekt initialisiert ist. Wie kann ich weiter untersuchen, um herauszufinden, wo das Problem liegt?
Was passiert, wenn Sie dynamisch die Auswahl auf der args Sicht Basis passieren wollen? – radtek
Das ist eine gute Frage. Das ist, was ich heute festhielt. Hast du eine Lösung dafür? – user1159517