一.源码解析之序列化:
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