我想在前端用request.data.columns获取数据,我可以用list方法用ViewSet来获取数据,但是如何用generics.APIView来实现。下面是我的视图集和泛型代码:
class TestList(viewsets.ViewSet):
queryset = Test.objects.all()
def list(self,request):
serializer = TestSerializer(self.queryset, many = True)
return Response({'columns': serializer.data})
class TestList(generics.RetriveAPIView):
queryset = Test.objects.all()
serializer_class = TestSerializer发布于 2022-02-10 13:38:03
class TestList(APIView):
queryset = Test.objects.all()
def list(self,request):
serializer = TestSerializer(self.queryset, many = True)
return Response({'columns': serializer.data})像这样改变你的urls.py。
path(r"url", TestList.as_view({"get": "list"}))发布于 2022-02-10 19:50:49
正确代码:
class TestList(APIView):
queryset = Test.objects.all()
def list(self,request):
queryset = self.get_queryset()
serializer = TestSerializer(queryset, many = True)
return Response({'columns': serializer.data})关于为什么我必须添加queryset = self.get_queryset()而不是直接访问self.queryset.From官方drf文档的细节:
queryset -用于从此视图返回对象的查询集。通常,必须设置此属性,或者重写get_queryset()方法。如果要重写视图方法,那么调用get_queryset()而不是直接访问该属性是很重要的,因为queryset将被计算一次,这些结果将被缓存到所有后续请求中。
https://stackoverflow.com/questions/71056567
复制相似问题