python3开发进阶-Django框架中form的校验方法is_valid()的源码,-djangois_valid,form表单的校验方
python3开发进阶-Django框架中form的校验方法is_valid()的源码,-djangois_valid,form表单的校验方
form表单的校验方法is_valid()
点开我们发现这个函数里面只有两个方法方法,最终返回True or False
我们点进.is_bound属性,里面判断传输的数据不是空和上传文件不是空
点进.errors发现这是一个方法伪装成属性,用的是内置的装饰器property,
这里有个简单的逻辑判断大家都看的懂吧,判断有没有报错的信息,没有错误信息就执行self.full_clean()
我们看看执行也看看返回的 self._errors,发现开始是空,经过self.full_clean() self._errors值可能发生变化
这下我们来看full_clean,self._errors获取ErrorDict()的实例化对象,
我们来瞄一眼ErrorDict:
self.cleaned_data 定义为空的字典,还有self.empty_permitted 和not self.has_changed(),我们也来瞄一眼
self.empty_permitted
not self.has_changed() 有值就为False ,没有值就为True,
看完上面部分,我们来看下面的self._clean_fields(),self._clean_form()
走到这里我们发现,封装这个功能的作者,留下了可拓展的地方
自定义表单验证规则:
python3开发进阶-Django框架中form的校验方法is_valid()的源码
相关内容
- python + selenium 模拟键盘升级版PyUserInput,,前言在web自动
- python3内置的tkinter参数释疑,python3tkinter,最近涉及到需
- 考虑以下 Python 代码,如果运行结束,命令行中的运行
- NBSVM的Python实现,NBSVMPython实现,NBSVM朴素贝叶斯
- Termux的安装在手机上来运行Python,termuxpython,1. Termux
- 在python中一对单引号,一对双引号,三个单双引号的区别
- Python 随笔之Redis,python随笔redis,Python学习记录
- Python_基础_(面向对象三大特性),python三大,一,继承#
- python基础(六),python基础, 格式化输出有两种
- 解决python在import caffe时出现的no module name _caffe问题,
评论关闭