Django表单输入验证

时间:2017-01-25 02:12:35

标签: python django forms

我的输入表单定义如下。

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选项的情况下提交表单是正确的,那么表单将无效。但是,它不会向用户发出警告。怎么办呢?

1 个答案:

答案 0 :(得分:0)

根据documentation,如果您设置blank=False,则无法使用default=None

  

除非在字段上设置了空白= False以及默认值,否则将使用选择框呈现包含“---------”的标签。要覆盖此行为,请将元组添加到包含None的选项中;例如(无,'你的显示字符串')。或者,您可以使用空字符串而不是空字符串,例如在CharField上。