valeur initiale pour le champ de choix de forme django ignoré
J'ai cette forme:
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])
Les choix disponibles sont:
E = 'e'
A = 'a'
SOURCES_CHOICES = (
(A, 'A'),
(E, 'E'),
)
La vue:
form = UserUsesSourceForm(initial={"username":request.user.username, 'provider':SOURCES_CHOICES[1]})return render_to_response('update_datasource.html', context_instance=RequestContext(request, params))
Et le modèle:
<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>
Le problème est que, même si la valeur initiale est correctement réglé, et je peux le tester en debug (c'est à dire, la forme "fournisseur" champ valeur initiale est le n-uplet je veux), le html final toujours afficher le premier élément dans la boîte de sélection:
<select name="provider" id="id_provider">
<option value="A">A</option>
<option value="E">E</option>
</select>
..alors que je m'attends à avoir un "défaut" ou "active".
Veuillez noter que le nom d'utilisateur champ est initialisé correctement.
Comment puis-je étudier plus à savoir où est le problème?
source d'informationauteur Desmond
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour passer le
option
valeur au lieu de tuple dansinitial
de données: