我有一个移动应用程序,使用Django REST框架API,并且我有许多ModelViewSet来检索数据。由于需要在用户登录后调用大量路由,因此我遇到了性能问题。我希望保留REST逻辑,但也希望在登录响应中返回所有视图集内容(保留其过滤器)。
是否可以从另一个视图(视图集或APIView)中调用ModelViewset list()?
我在SO上找到的唯一答案是做类似以下的事情。
有没有其他的解决方案?
是否可以从另一个视图(视图集或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`
有没有其他的解决方案?
GET
请求效果很好,但是对于POST
请求,我会收到这个错误:django.http.request.RawPostDataException: You cannot access body after reading from request's data stream
。 - decibyte