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参数通常用于序列化操作。如果要进行反序列化操作,例如从序列化数据恢复成实例,可以使用data

3. 视图类中序列化类的高级用法 

serializer的高级用法

在类的属性里边
serializer_class = xxx
在方法中
ser = self.get_serializer()  # get_serializer是在APIView的内置方法,我们自己进行重写判断

4. 正反向的查询 

/1 基于对象的跨表查询

正向:字段查询  反向:表名小写,一对一,表名小写点出需要的,一对多,表名小写_set.all()

related_name = 'xxx'   基于对象跨表查反向查询,替换表名小写

/2 基于双下划线的连表查询

正向:字段查询  反向:表名小写

related_query_name = 'xxx'  基于连表查反向查询,替换表名小写

 

posted @ 2023-07-04 17:17  ranbo145  阅读(8)  评论(0)    收藏  举报