进一步将 APIView 中用到的两个变量进行封装,即查询集 queryset 和序列化器类 serializer_class。
并且提供了几个封装的方法:
- get_queryset() 获取 queryset
- get_object() 获取单个模型对象
- get_serializer() 获取序列化器
用法如下:
serializer=self.get_serializer(instance=self.get_queryset(), many=True)
⚠️ get_serializer()其实是调用了 get_serializer_class()
PUT 更新逻辑里面应该传入 pk 参数,并且相应的路由应该设置为有名分组,不能是无名分组。
def put(self, request, pk):
serializer=self.get_serializer(instance=
self.get_object(), data=request.data)
# 下面是数据验证逻辑