7.4 查漏补缺
1. super的使用方法
super()是一个python的内置方法,
他的常见用法是在子类的构造函数中调用父类的构造函数
例如:
res = super().list(request, *args, **kwargs)
就是使用super()调用了父类的list方法2. instance的使用方法
instance大多数时候用于指定序列化或者反序列化的实例 可以用于多个及单个的实例
例(单个):
instance = MyModel.objects.get(id=1)
serializer = MyModelSerializer(instance=instance)
例(多个):
instances = MyModel.objects.all()
serializer = MyModelSerializer(instance=instances, many=True) # 使用many=True允许多个实例传入
需要注意的是,instance参数通常用于序列化操作。如果要进行反序列化操作,例如从序列化数据恢复成实例,可以使用data3. 视图类中序列化类的高级用法
serializer的高级用法
在类的属性里边
serializer_class = xxx
在方法中
ser = self.get_serializer()  # get_serializer是在APIView的内置方法,我们自己进行重写判断4. 正反向的查询
/1 基于对象的跨表查询
正向:字段查询 反向:表名小写,一对一,表名小写点出需要的,一对多,表名小写_set.all()
related_name = 'xxx' 基于对象跨表查反向查询,替换表名小写
/2 基于双下划线的连表查询
正向:字段查询 反向:表名小写
related_query_name = 'xxx' 基于连表查反向查询,替换表名小写

 
                
             
         浙公网安备 33010602011771号
浙公网安备 33010602011771号