Django表单:如果我在表单中使用charfield,我需要使用clean_字段吗?
在我的表单中,如果我有以下类,其中有一个字段作为我的charfield“bio”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
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()
,请参阅我的更新答案