一、钩子功能提供的数据验证

  对于数据验证,django会执行 full_clean()方法进行验证。full_clean验证会经历几个步骤,首先,对于model的每个字段进行正则验证,正则验证通过后,然后进行clean()方法验证,这里的clean函数,就是钩子函数。通常是需要我们自己去书写。

  分析上述钩子函数的弊端:如果在model数据库中,有多个字段都需要进行数据验证,则需要在每个字段后都需要有钩子存在才可以,而clean方法是对整体进行数据验证,并不能完成对于每个字段的验证。

  结论:由于钩子功能较弱,并且验证不通过会抛出异常,对于用户来说并不友好,因此通常不用钩子来进行验证。

二、Form内置钩子

  Form的验证功能,经历四个阶段

  •   字段的自定义正则表达式
  •   字段的钩子函数,比如 name字段对应的clean_name方法
  •   执行clean方法的钩子
  •   执行_post_clean方法的钩子

  其中,前两个验证是以每个字段来循环验证的。

  每一种错误信息,放在每个字段的错误信息中,对于整体的,放到了self.errors['__all__'] 值的list中。

最新文章

  1. 在Mac中像Windows一样查看Tomcat控制台信息
  2. [已解决] MAVEN安装代码到本地库,安装jar, source, javadoc的方式
  3. eclipse debug maven项目时出现缺少库的问题
  4. iTop各数据表联系图(持续更新中)
  5. PE刷题记录
  6. Ubuntu及Windows ADB设备no permissions的解决方案
  7. Swift中的单例的实现方式
  8. PHP AOP
  9. Welcome to Apache™ Hadoop®!
  10. 2013 ACM/ICPC 成都网络赛解题报告
  11. 《Linux命令行与shell脚本编程大全》- 读书笔记3 - 理解shell
  12. vue项目开发中遇到的问题总结--内部分享
  13. 记我的第二次自动化尝试——selenium+pageobject+pagefactory实现自动化下单、退款、撤销回归测试
  14. 博弈论进阶之Anti-SG游戏与SJ定理
  15. Git入门—创建项目
  16. Redis的五种数据类型
  17. java中的dao模式
  18. ZOJ 2060 A-Fibonacci Again
  19. POJ - 1456 贪心 堆常用操作 注意细节
  20. CF840C On the Bench 解题报告

热门文章

  1. ZooKeeperEclipse 插件
  2. Unity对象与Draw Calls的关系
  3. 汉诺塔(-) java modPow 的用法;
  4. poj Squares n个点,共能组成多少个正方形 二分 + 哈希
  5. [android] 本地推送服务
  6. WEB前端面试题 分别使用2个、3个、5个DIV画出一个大的红十字
  7. How to add total page to Odoo Report(7.0 version)
  8. JVM Specification 9th Edition (3) Chapter 2. The Structure of the Java Virtual Machine
  9. ARM与X86架构的对决[整编]
  10. php 判断是否在微信浏览器中打开