J'ai une référence de clé étrangère qui apparaît sous la forme d'une zone de sélection sur le client, mais elle est pré-remplie avec des valeurs. Je veux que la boîte de sélection soit vide quand elle s'affiche car elle sera remplie par un appel Ajax.Supprimer tous les éléments d'un champ de sélection de clé étrangère
Ceci est mon modèle
class RecipeIngredient(models.Model):
recipe = models.ForeignKey(Recipe)
ingredient = models.ForeignKey(Ingredient)
serving_size = models.ForeignKey(ServingSize)
quantity = models.IntegerField()
order = models.IntegerField()
created = models.DateTimeField(auto_now_add = True)
updated = models.DateTimeField(auto_now = True)
et ceci est mon modèle de formulaire
class RecipeIngredientForm(forms.ModelForm):
class Meta:
model = RecipeIngredient
fields = ('ingredient', 'quantity', 'serving_size')
widgets = {
'ingredient': forms.TextInput(attrs={'class' : 'recipe_ingredient'}),
'quantity': forms.TextInput(),
'serving_size' : forms.ChoiceField(choices=PLEASE_SELECT, widget=forms.Select()),
}
Je veux que le champ « serving_size » pour que les choix que je spécifié et aucune donnée de la base de données. Évidemment, j'obtiens une erreur
AttributeError: 'ModelChoiceField' object has no attribute 'to_field_name'
Des idées?
Merci pour la réponse. Si je ne l'inclue pas dans les champs, il n'apparaît pas sur la page. J'ai essayé ce fields = ('ingrédient', 'quantité') serving_size = forms.ChoiceField() – iJK
J'ai ajouté un formulaire complet. Vous avez essayé exactement cela? Je suis sûr que cela devrait fonctionner. – gruszczy
Merci, cela a fonctionné. Si cela ne vous dérange pas pouvez-vous expliquer ce que nous avons fait? Avons-nous simplement créé un nouveau champ? – iJK