首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Json对象名

访问Json对象名
EN

Stack Overflow用户
提问于 2022-02-09 20:53:12
回答 2查看 64关注 0票数 0

我想在前端用request.data.columns获取数据,我可以用list方法用ViewSet来获取数据,但是如何用generics.APIView来实现。下面是我的视图集和泛型代码:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-10 13:38:03

代码语言:javascript
复制
class TestList(APIView):
     queryset = Test.objects.all()
     def list(self,request):
         serializer = TestSerializer(self.queryset, many = True)
         return Response({'columns': serializer.data})

像这样改变你的urls.py。

代码语言:javascript
复制
path(r"url", TestList.as_view({"get": "list"}))
票数 0
EN

Stack Overflow用户

发布于 2022-02-10 19:50:49

正确代码:

代码语言:javascript
复制
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将被计算一次,这些结果将被缓存到所有后续请求中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71056567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档