-
forms.ModelForm是forms.Form的升级版
-
forms.Form验证规则
2.1 forms.py
2.2 view.py 把我们写的UserResetForm导入到view.py
2.3 模板
-
forms.ModelForm验证规则
3.1 models.py
3.2 forms.py就用上面模型类里面的验证规则
3.3 view.py
3.4 模板看你实际的情况 -
forms.ModelForm远不止你看的这些功能, forms.ModelForm还能自定义匹配规则, 列手机号
记住自定义匹配规则方法都必须以clean_开头 -
is_valid()验证规则
(1)首先is_valid()起手,看seld.errors中是否值,只要有值就是flase(2)接着分析errors.里面判断_errors是都为空,如果为空返回self.full_clean(),否则返回self._errors(3)现在就要看full_clean(),是何方神圣了,里面设置_errors和cleaned_data这两个字典,一个存错误字段,一个存储正确字段。(4)在full_clean最后有一句self._clean_fields(),表示校验字段(5)在_clean_fields函数中开始循环校验每个字段,真正校验字段的是field.clean(value),怎么校验的不管(6)在_clean_fields中可以看到,会将字段分别添加到_errors和cleaned_data这两个字典中(7)结尾部分还设置了钩子,找clean_XX形式的,有就执行。执行错误信息也会添加到_errors中(8)整个校验过程完成
-
is_valid()在验证数据时判断多个字段不能同时相同
列子:有6个input框, 下面的1, 2, 3, 4, 5, 6依次在这6个框中意思就是当你第一次提交的数据是1,2,3,4,5,6你第二次不能提交1,2,3,4,5,6这样会报错,因为你这次提交的数据跟上次提交的数据相同,你要是提交7,8,1,2,3,4都会提交上去,因为你有部分数据不同.