访问 Json 对象名称
Access Json object name
我想在 frontend.I 中使用 request.data.columns 获取数据,可以使用带有列表方法的 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
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"}))
正确代码:
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() 而不是直接访问此 属性,因为查询集将被评估一次,并且这些结果将被缓存以供所有后续请求使用。
我想在 frontend.I 中使用 request.data.columns 获取数据,可以使用带有列表方法的 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
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"}))
正确代码:
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() 而不是直接访问此 属性,因为查询集将被评估一次,并且这些结果将被缓存以供所有后续请求使用。