覆盖模型字段选择选项未通过验证

时间:2018-09-27 07:20:18

标签: django django-models django-forms

在Django 1.11中

: 我有一个声明的模型字段:

a = models.CharField(choices= (('a','a'),('b','b'))

在ModelForm中,我尝试覆盖以下选择:

class ModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['a'].choices = [('a', 'a'), ('b', 'b'), ('d', 'd')]

表单正确呈现(添加了选项“ d”),但是在提交表单时返回错误

Select a valid choice. d is not one of the available choices.

无论我做什么,都无济于事。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

从模型中删除choices选项。如果您随后允许用户选择更多选项,则限制选择的范围是没有意义的。

就像

    a = models.CharField()