Django表单:如果我在表单中使用charfield,我需要使用clean_字段吗?

Django表单:如果我在表单中使用charfield,我需要使用clean_字段吗?,django,django-forms,Django,Django Forms,在我的表单中,如果我有以下类,其中有一个字段作为我的charfield“bio” class MyClass(forms.ModelForm): bio = forms.CharField(max_length=1000 我是否需要进行以下验证,或者上面的最大长度=1000已经涵盖了这一点 def clean_bio(self): bio=self.cleaned_data['bio'] max_length = 1000 if len(bio) > ma

在我的表单中,如果我有以下类,其中有一个字段作为我的charfield“bio”

class MyClass(forms.ModelForm):
    bio = forms.CharField(max_length=1000
我是否需要进行以下验证,或者上面的最大长度=1000已经涵盖了这一点

def clean_bio(self):
    bio=self.cleaned_data['bio']
    max_length = 1000
    if len(bio) > max_length:
        raise forms.ValidationError('Please limit your bio to 1000 words')
return bio

对于
长度
,根本不需要使用它,您的模型字段已经有一个
最大长度
,因此Django将确保该值少于1000个字符

注意:建议您在模型中使用
models.TextField()
,因为您的字段可以接收很长的字符。您的表格将是:

forms.CharField(max_length=1000,widget=forms.Textarea())

不,框架将为您设置长度限制。TextField做什么而CharField不做什么?如果它更长,它会给出错误验证吗?Nm,我发现:如果你也在模型中使用它,我只是警告你不要在这样的领域中使用它。即使在表单中,通过使用
forms.CharField
,您也必须使用小部件
forms.Textarea()
,请参阅我的更新答案