Django, ModelChoiceField() et la valeur initiale
Je suis en utilisant quelque chose comme ceci:
field1 = forms.ModelChoiceField(queryset=...)
Comment puis-je faire mon formulaire de montrer la valeur sélectionnée?
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez définir la valeur par défaut valeur initiale, vous devriez être en définissant
initiale
comme les autres champs du formulaire, sauf que vous définir l'id à la place.Dire que vous avez
field1
comme ceci:ensuite, vous devez définir les initiales lorsque vous créez votre formulaire comme ceci:
plutôt que:
Je suis aussi en supposant que vous avez défini
__unicode__
pour vos modèles si cela s'affiche correctement.__init__() got an unexpected keyword argument field1
Vous pouvez simplement utiliser
de faire la première valeur sélectionnée etc. C'est plus générique sens, puis dans l'autre réponse.
django>=1.8
. Je crois que cela devrait fonctionner pour toutes les versions, y compris>=1.4
ModelChoiceField.__init__(..., initial,...)
pour Django=1.8.11.Les temps ont changé:
La valeur par défaut valeur initiale peut être définie par la définition de
initial
comme les autres champs de formulairesauf que vous la définissez l'id à la place.Maintenant, cela ne sera pas suffisant:
Si les deux fonctionnent toujours.
Le code
et
ou initiale sur le terrain directement suivantes:
Tous les travaux.
Les deux premiers moyens de remplacer la voie finale.
Vous pourriez faire ceci:
si vous analysez votre clé primaire à travers une chaîne de requête ou par le biais d'un appel ajax pas besoin d'une instance, la requête a déjà manipulé que pour votre déroulant, le pk indices de l'état que vous souhaitez