Django paginate_queryset中的页码在PageNumberPagination中始终为1
我的看法如下:Django paginate_queryset中的页码在PageNumberPagination中始终为1,django,pagination,django-rest-framework,Django,Pagination,Django Rest Framework,我的看法如下: class ApplicationApplicantsViewSet(viewsets.ModelViewSet): queryset = Applicant.objects.all() serializer_class = ApplicantSerializer def list(self, request, application_pk=None): queryset = self.queryset.filter(applicatio
class ApplicationApplicantsViewSet(viewsets.ModelViewSet):
queryset = Applicant.objects.all()
serializer_class = ApplicantSerializer
def list(self, request, application_pk=None):
queryset = self.queryset.filter(application__pk=application_pk)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
以下是paginate_queryset方法
def paginate_queryset(self, queryset, request, view=None):
"""
Paginate a queryset if required, either returning a
page object, or `None` if pagination is not configured for this view.
"""
self._handle_backwards_compat(view)
page_size = self.get_page_size(request)
if not page_size:
return None
paginator = DjangoPaginator(queryset, page_size)
page_number = request.query_params.get(self.page_query_param, 1)
if page_number in self.last_page_strings:
page_number = paginator.num_pages
try:
self.page = paginator.page(page_number)
except InvalidPage as exc:
msg = self.invalid_page_message.format(
page_number=page_number, message=six.text_type(exc)
)
raise NotFound(msg)
if paginator.num_pages > 1 and self.template is not None:
# The browsable API should display pagination controls.
self.display_page_controls = True
self.request = request
return list(self.page)
但是在使用
PageNumberPagination中paginate_queryset中的页码变量为1。知道为什么会发生这种情况吗?我看不出您在代码的该部分中使用get参数的位置,您似乎只是将页面设置为从方法返回的内容,我没有收到您的评论。我刚刚编辑了我的问题。你能再看一遍吗@说你似乎没有把请求传递给那个方法,所以我看不出它是如何进入的,虽然我可能遗漏了一些东西……不用担心,你可能想为你自己的问题添加一个解释问题的答案。它可能会在将来帮助其他人我看不出在代码的该部分中您在哪里使用get参数,您似乎只是将页面设置为从方法返回的内容我没有收到您的评论。我刚刚编辑了我的问题。你能再看一遍吗@说你似乎没有把请求传递给那个方法,所以我看不出它是如何进入的,虽然我可能遗漏了一些东西……不用担心,你可能想为你自己的问题添加一个解释问题的答案。它将来可能会帮助别人