删除外键选择字段中的所有元素

时间:2010-07-27 03:15:14

标签: django django-models

我有一个外键引用,它在客户端显示为一个选择框,但它预先填充了值。我希望选择框在显示时为空,因为它将由Ajax调用填充。

这是我的模特

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)

这是我的模特表格

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()),
        }

我希望“serving_size”字段具有我指定的选项,而不是数据库中的任何数据。显然,我收到了错误

AttributeError: 'ModelChoiceField' object has no attribute 'to_field_name'

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

请勿在{{1​​}}中加入serving_size。而是自己添加:

fields

试试这个并告诉它,如果它成功了。

此外,我相信您不应该将class RecipeIngredientForm(forms.ModelForm): serving_size = forms.ChoiceField(..) 放入ChoiceField,这不是小部件,而是整个字段。

修改

widgets