serializer.is_valid()方法经历了什么?
serializer.is_valid()方法经历了什么?
- Serializer类
-
继承BaseSerializer类
- is_valid()方法,做了两件事,一个把验证过的数据赋值给validated_data属性,一个返回布尔值判断数据是否验证通过
- 调用Serializer类中run_validation()方法,其中self.initial_data就是浏览器发送过来的原始数据
- is_valid()方法,做了两件事,一个把验证过的数据赋值给validated_data属性,一个返回布尔值判断数据是否验证通过
-
run_validation()方法
- 主要有三个方法,to_internal_value()方法,run_validators()方法,validate()方法
- 调用Serializer类中to_internal_value()方法,目的是将原始数据转换成Django中的字典类型
- 验证原始的数据
- 通过自定义方法验证fields中每个字段值,方法命名规则'validate_'+field_name
- 调用Serializer类中run_validators()方法,验证每个字段值
- 调用Serializer类中validate()方法, 目的是返回经过校验的数据,没有做任何处理,可以自定义
-
我在想我要不要写一句励志的话......