我的输入表单定义如下。
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['first_name', 'last_name', 'language',
]
widgets = {
'language': forms.RadioSelect,
}
在models.py
内,我定义了以下内容:
first_name = models.CharField(max_length=250)
last_name = models.CharField(max_length=250)
LANGUAGE = (('AR', 'Arabic'), ('FR', 'French'), ('ES', 'Spanish'))
language = models.CharField(max_length=20, choices=LANGUAGE, blank=False, default=None)
first_name和last_name是必填字段,如果用户将这两个选项留空,则会提示警告消息。但是,我还希望language
字段是必填字段。为此,我设置了blank=False
。如果您在未选择language
选项的情况下提交表单是正确的,那么表单将无效。但是,它不会向用户发出警告。怎么办呢?
答案 0 :(得分:0)
根据documentation,如果您设置blank=False
,则无法使用default=None
。
除非在字段上设置了空白= False以及默认值,否则将使用选择框呈现包含“---------”的标签。要覆盖此行为,请将元组添加到包含None的选项中;例如(无,'你的显示字符串')。或者,您可以使用空字符串而不是空字符串,例如在CharField上。