检查空字段的验证器

时间:2018-05-26 01:17:03

标签: django django-models

我想在django模型中创建一个字段,其中null = True且blank = True,但用户必须在字段中输入内容。基本上,我需要在用户单击“提交”后进行页面加载(即,如果必需字段保留为null,我不希望django的内置字段验证器弹出)。我想在models.py文件中使用验证器来完成此操作,该文件检查字段是否已填充。

def validate7(value):
    if bool(value) == False:
        raise ValidationError(_('Please fill in the field below.'))
    else:
        pass


class CarProfile (models.Model):                                     
    user = models.OneToOneField(User, on_delete=models.CASCADE) 
    quality = models.CharField(max_length=50, blank=True, null=True, validators=[validate7])

不幸的是,当这些字段留空时,用户可以提交表单。

在验证器中,我也尝试过:

    if value == None:
        raise ValidationError(_('Please fill in the field below.'))

    if value == '':
        raise ValidationError(_('Please fill in the field below.'))

    if not value:
        raise ValidationError(_('Please fill in the field below.'))

似乎没什么用。我在我的网站上实现了其他验证器,但我似乎无法解决这个问题。任何建议将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

自定义验证程序无法解析保留为null的字段。在表单标记上使用novalidate以防止显示html5弹出窗口。