如何在ValidationError中构造条件

时间:2019-09-04 19:30:28

标签: django django-models

我有一个名为Comments的模型,其具有content = models.CharField(max_length = 100) 如果用户键入的字符超过max_length,则我想使用“ def clean_content”的形式提出验证错误。那么如何使用条件运算符。

def clean_content(self):
    content = self.cleaned_data.get("content")
    if ????????? < 100:
        return content
    else:
        raise forms.ValidationError(('You exceeded max number of character'))

1 个答案:

答案 0 :(得分:0)

简短答案:Django通常会为您处理max_length约束,而无需亲自验证。

您可以检查content的长度,例如:

def clean_content(self):
    content = self.cleaned_data.get('content')
    if len(content) <= 100:
        return content
    else:
        raise forms.ValidationError('You exceeded max number of character')

但是您不需要需要自己实施此验证。 Django的ModelFrom将自动检查该字段的max_length,如果数字超过该数,则会引发错误。例如:

>>> form.errors
{'content': ['Ensure this value has at most 100 characters (it has 1000).']}

因此您无需亲自验证。