python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

form表单的校验方法is_valid()

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 点开我们发现这个函数里面只有两个方法方法,最终返回True or False

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 我们点进.is_bound属性,里面判断传输的数据不是空和上传文件不是空

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 点进.errors发现这是一个方法伪装成属性,用的是内置的装饰器property,

这里有个简单的逻辑判断大家都看的懂吧,判断有没有报错的信息,没有错误信息就执行self.full_clean()

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 我们看看执行也看看返回的 self._errors,发现开始是空,经过self.full_clean() self._errors值可能发生变化

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

这下我们来看full_clean,self._errors获取ErrorDict()的实例化对象,

我们来瞄一眼ErrorDict:

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 self.cleaned_data  定义为空的字典,还有self.empty_permitted 和not self.has_changed(),我们也来瞄一眼

self.empty_permitted

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

not self.has_changed()    有值就为False  ,没有值就为True,

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

看完上面部分,我们来看下面的self._clean_fields(),self._clean_form()

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 走到这里我们发现,封装这个功能的作者,留下了可拓展的地方

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

 自定义表单验证规则:

python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法详解编程语言

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/12212.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论