class RegForm(forms.Form):
name = forms.CharField(label='用户名')
def clean_name(self):
name=self.cleaned_data['name']
if len(name)<6:
raise forms.ValidationError("你注册的用户名字符太短了")
return name
上述代码中,我们依然首先定义了一个 表单 Form 类,然后并定义了一个字段 name,并在该类中额外添加了 name 字段的验证逻辑即通过 clean_name 方法实现,该方法会在 name 字段的默认验证逻辑执行完成后执行,所以,可以直接通过 cleaned_data 属性获取到符合校验要求的数据值。
In [1]: from index.forms import RegForm
In [2]: form=RegForm
In [3]: form=RegForm({'name':'cyuyan'})
In [4]: form.is_valid()
Out[4]: True
In [5]: form=RegForm({'name':'cyuyanzhongwenwang'})
In [6]: form.is_valid()
Out[6]: True
In [7]: form=RegForm({'name':'cyu'})
In [8]: form.is_valid()
Out[8]: False
In [9]: form["name"].errors
Out[9]: ['你注册的用户名字符太短了']
从上面的测试可以看出,通过自定义 clean_name 方法实现了自定义的校验逻辑。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有