【发布时间】:2023-03-15 16:31:01
【问题描述】:
我有一个使用drf-nested-routers 的简单嵌套路由器,类似于自述文件页面上的示例。嵌套路由上的列表视图根本不分页,忽略我的DEFAULT_PAGINATION_CLASS 设置。这是设计使然吗?嵌套路由是否必须手动实现分页?如果我尝试在嵌套视图集的 list 方法中调用 self.get_paginated_response,我会收到此错误:
AttributeError at /api/foo/13/bar/
'PageNumberPagination' object has no attribute 'page'
这是我的嵌套视图中的list 方法:
def list(self, request, workplan_pk=None):
milestones = self.get_queryset()
wp = get_object_or_404(Workplan, pk=workplan_pk)
milestones = milestones.filter(workplan=wp)
return Response(self.get_serializer_class()(milestones, many=True, context={'request': request}).data)
【问题讨论】:
-
我的嵌套路由器分页工作正常,没有问题。分页由使用分页器的视图处理,视图对路由一无所知。他们只将请求作为参数获取。我认为问题出在其他地方。
-
你能发布完整的堆栈跟踪吗?
-
@Ivan 你的嵌套路由器的
list方法返回什么?我的返回带有序列化数据的 DRF 响应对象。我想知道我是否应该返回其他东西。我已更新问题以显示我的list方法 -
我的返回序列化的分页数据。在您的列表中,您根本不会对数据进行分页。我会发布一个答案。
标签: django pagination django-rest-framework django-queryset drf-nested-routers