-
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都会提交上去,因为你有部分数据不 同.
forms.Form和forms.ModelForm
于 2019-07-05 18:35:48 首次发布