J'essaie de préremplir les données dans mon formulaire django en fonction de certaines informations, mais PAS en utilisant ModelForm, donc je ne peux pas simplement définir l'instance.Prépopulation de Django (non-modèle) Formulaire
Cela semble être très facile, mais pour une raison quelconque, je ne trouve aucune documentation me disant comment faire. Ceci est ma forme:
class MyForm(forms.Form):
charfield1 = forms.CharField(max_length=3)
charfield2 = forms.CharField(max_length=3)
choicefield = forms.ModelChoiceField(MyModel.objects.all())
J'ai essayé de faire juste:
form = MyForm()
form.charfield1 = "foo"
form.charfield2 = "bar"
# a model choice field
form.choicefield = MyModel.objects.get(id=3)
qui ne fonctionne pas.
grâce - cela fonctionne. Cependant, cela ne fonctionne pas avec la clé étrangère d'un modèle. J'ai essayé de passer dans l'instance du modèle elle-même dans le dictionnaire, ce qui lance une exception, et j'ai essayé de passer dans le pk/id, ce qui n'échoue pas, mais ne le précharge pas correctement dans mon interface utilisateur. – Cory
L'utilisation de l'ID d'objet devrait fonctionner. Je viens de le tester avec un ModelChoiceField. Pourriez-vous nous montrer votre définition de formulaire? –
a ajouté la définition de formulaire dans l'édition. – Cory