阅读背景:

RestFramework之序列化器源码解析

来源:互联网 

一.源码解析之序列化:

1.当视图类进行实例化序列化类做了如下操作:
#ModelSerializer继承Serializer再继承BaseSerializer(此类定义实例化方法)
#在BaseSerializer执行__new__方法,用于判断many是为True还是False:
class BaseSerializer:
    def __new__(cls, *args, **kwargs):
        if kwargs.pop('many', False):
            #many = True, 对QuerySet进行处理
            return cls.many_init(*args, **kwargs)
            #many = False  对对象进行处理, 然后执行初始化方法__init__
        return super().__new__(cls, *args, **kwargs)
#当many=True:为QuerySet对象,用ListSerializer进行处理
#当many=False:为单个对象,用Serializer进行处理

1.当视图类进行实例化序列化类做了如下操作:
#ModelSeria



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: