基於函式的檢視的中間分頁

我們在這些示例中看到了( 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 來覆蓋一些預設的分頁