基于函数的视图的中间分页

我们在这些示例中看到了( ex_1ex_2 )如何在任何泛型类基本视图中使用和覆盖分页类。
当我们想在基于函数的视图中使用分页时会发生什么?

让我们假设我们想要使用 PageNumberPaginationMyModel 创建一个基于函数的视图,仅响应 GET 请求。然后:

from rest_framework.pagination import PageNumberPagination

@api_view(['GET',])
def my_function_based_list_view(request):
    paginator = PageNumberPagination()
    query_set = MyModel.objects.all()
    context = paginator.paginate_queryset(query_set, request)
    serializer = MyModelSerializer(context, many=True)
    return paginator.get_paginated_response(serializer.data)

我们可以通过更改此行来执行上述自定义分页:

paginator = PageNumberPagination()

对此

paginator = MyCustomPagination()

只要我们定义了 MyCustomPagination 来覆盖一些默认的分页