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 方法实现了自定义的校验逻辑。
本文链接:http://task.lmcjl.com/news/14940.html