serializer.is_valid()方法经历了什么?

serializer.is_valid()方法经历了什么?

  • Serializer类
    • 继承BaseSerializer类

      • is_valid()方法,做了两件事,一个把验证过的数据赋值给validated_data属性,一个返回布尔值判断数据是否验证通过
        • 调用Serializer类中run_validation()方法,其中self.initial_data就是浏览器发送过来的原始数据

      screenshot_2.png

    • run_validation()方法

      • 主要有三个方法,to_internal_value()方法,run_validators()方法,validate()方法

      screenshot_5.png

      • 调用Serializer类中to_internal_value()方法,目的是将原始数据转换成Django中的字典类型
        • 验证原始的数据
        • 通过自定义方法验证fields中每个字段值,方法命名规则'validate_'+field_name

      screenshot_1.png

      • 调用Serializer类中run_validators()方法,验证每个字段值

      screenshot_3.png

      • 调用Serializer类中validate()方法, 目的是返回经过校验的数据,没有做任何处理,可以自定义

      screenshot_4.png

原文地址:https://www.cnblogs.com/iread9527/p/12873401.html