1、钩子功能提供的数据验证正则表达式
对于数据验证,django会执行 full_clean()方法进行验证。full_clean验证会经历几个步骤,首先,对于model的每一个字段进行正则验证,正则验证经过后,而后进行clean()方法验证,这里的clean函数,就是钩子函数。一般是须要咱们本身去书写。数据库
分析上述钩子函数的弊端:若是在model数据库中,有多个字段都须要进行数据验证,则须要在每一个字段后都须要有钩子存在才能够,而clean方法是对总体进行数据验证,并不能完成对于每一个字段的验证。django
结论:因为钩子功能较弱,而且验证不经过会抛出异常,对于用户来讲并不友好,所以一般不用钩子来进行验证。函数
2、Form内置钩子post
Form的验证功能,经历四个阶段orm
其中,前两个验证是以每一个字段来循环验证的。钩子
每一种错误信息,放在每一个字段的错误信息中,对于总体的,放到了self.errors['__all__'] 值的list中。model