我有一個 Django Restframework 專案。這是我的觀點:
class JobView(viewsets.ReadOnlyModelViewSet):
queryset = Job.objects.all()
serializer_class = JobSerializer
filter_backends = [filters.OrderingFilter, DjangoFilterBackend, filters.SearchFilter]
search_fields = [...]
ordering_fields = ['jobId']
ordering = ['-jobId']
filterset_fields = ['jobId', 'status']
pagination_class = StandardResultsSetPagination
和我的分頁課:
class StandardResultsSetPagination(LimitOffsetPagination):
page_size = 1
該視圖注冊在路由器中:
router.register(r'jobs', JobView)
問題是,它根本不分頁。它只是忽略了 pagination_class 屬性。
我也試過:
class JobView(generics.ListAPIView)
并在沒有路由器的情況下注冊了視圖。但問題是一樣的。它不分頁,只回傳包含所有作業的 json 串列。
如何在此視圖中實作分頁,而無需在 settings.py 中為專案全域定義它?
uj5u.com熱心網友回復:
您是否StandardResultsSetPagination繼承了正確的分頁樣式?LimitOffsetPagination默認不限制輸出(PAGE_SIZE設定除外),需要查詢引數來設定限制。page_size與PageNumberPagination 不同,它也沒有class 屬性。
uj5u.com熱心網友回復:
只需嘗試用以下代碼替換您的分頁類
from rest_framework.pagination import PageNumberPagination
class CustomPagination(PageNumberPagination):
page_size = 5
page_size_query_param = 'page_size'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327164.html
上一篇:使用Django&Vue.js設定的NginX位置管理
下一篇:自動創建用戶
