我在 Django Rest 框架中实现了“PageNumber”分页,该框架在本地运行良好。但是部署在远程服务器上的相同代码没有返回带分页的结果。
分页类:
class MyPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 20
使用分页查看:
class GetMyListings(generics.ListAPIView):
serializer_class = serializers.MyListingSerializer
pagination_class = utils.MyPagination
permission_classes = (
permissions.IsAuthenticated,
)
def get_queryset(self):
order_by_clause = self.request.GET.get('order_by', '-posted_on')
posted_clause = self.request.GET.get('posted', None)
if posted_clause:
return models.Post.objects.filter(owner=self.request.user,
is_posted=utils.make_boolean(posted_clause)
).order_by(order_by_clause)
return models.Post.objects.filter(owner=self.request.user).order_by(order_by_clause)
请您参考如下方法:
问题已解决,DRF 的本地版本为 3.3.2,而服务器的版本为 3.1.0,因为允许 PageNumberPagination 中的自定义 Django 分页器在 3.3.2 或更高版本中。
有关引用,请参阅发行说明: http://www.django-rest-framework.org/topics/release-notes/#332
