gpt4 book ai didi

django - 从另一个 View 调用 ViewSet 方法

转载 作者:行者123 更新时间:2023-12-03 20:16:55 25 4
gpt4 key购买 nike

我有一个带有 Django REST framework API 的移动应用程序,我有很多 ModelViewSet 可以调用来检索数据。我有性能问题,因为我需要在用户登录后调用很多路由,我想保留 REST 逻辑,但在登录后返回登录响应中的所有 View 集内容(保留它们的过滤器)。

是否可以从另一个 View ( View 集或 APIView)调用 ModelViewset list()?

我在 SO 上找到的唯一答案是做这样的事情

class ContentGenerator(APIView):

def get(self, request, format=None):
data = MyModelViewSet.as_view({'get': 'list'})(request).data

return Response({'data': data})

但是不支持
Exception Value: The `request` argument must be an instance of `django.http.HttpRequest`, not `rest_framework.request.Request`

还有其他解决方案吗?

最佳答案

经过一番研究,看起来在其他 View 中重用该请求可能会产生副作用,因此 DRF 并未正式支持它。这很hacky,但如果您知道自己在做什么,这是一个解决方案。

data = MyModelViewSet.as_view({'get': 'list'})(request._request).data

关于django - 从另一个 View 调用 ViewSet 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com