中級覆蓋每個類的分頁樣式和設定分頁
覆蓋分頁風格:
可以通過建立一個繼承自其中一個可用樣式的新類來覆蓋每個可用的分頁樣式,然後更改其引數:
class MyPagination(PageNumberPagination):
page_size = 20
page_size_query_param = 'page_size'
max_page_size = 200
last_page_strings = ('the_end',)
這些引數(在分頁官方文件中列出 )是:
PageNumberPagination
page_size:表示頁面大小的數值。如果設定,則會覆蓋PAGE_SIZE設定。預設值與PAGE_SIZE設定鍵的值相同。page_query_param:一個字串值,指示用於分頁控制元件的查詢引數的名稱。page_size_query_param:如果設定,這是一個字串值,指示允許客戶端基於每個請求設定頁面大小的查詢引數的名稱。預設為None,表示客戶端可能無法控制請求的頁面大小。max_page_size:如果設定,這是一個數值,表示允許的最大請求頁面大小。此屬性僅在設定了page_size_query_param時有效。last_page_strings:字串值的列表或元組,表示可以與page_query_param一起使用以請求集合中最後一頁的值。預設為('last',)template:在可瀏覽 API 中呈現分頁控制元件時要使用的模板的名稱。可以重寫以修改呈現樣式,或設定為None以完全禁用 HTML 分頁控制元件。預設為rest_framework/pagination/numbers.html。
LimitOffsetPagination
default_limit:一個數值,表示客戶端在查詢引數中未提供的限制。預設值與PAGE_SIZE設定鍵的值相同。limit_query_param:表示limit查詢引數名稱的字串值。預設為'limit'。offset_query_param:一個字串值,表示offset查詢引數的名稱。預設為'offset'。max_limit:如果設定,這是一個數值,表示客戶端可能請求的最大允許限制。預設為None。template:與 PageNumberPagination 相同。
CursorPagination
page_size:與 PageNumberPagination 相同。cursor_query_param:一個字串值,表示cursor查詢引數的名稱。預設為'cursor'。ordering:這應該是一個字串或字串列表,表示將應用基於游標的分頁的欄位。例如:ordering = 'slug'。預設為-created。在檢視上使用OrderingFilter也可以覆蓋此值。template:與 PageNumberPagination 相同。
每班設定分頁:
除了能夠在全域性範圍內設定分頁樣式之外,還可以使用每個類的設定:
class MyViewSet(viewsets.GenericViewSet):
pagination_class = LimitOffsetPagination
現在只有 MyViewSet 有一個 LimitOffsetPagination 分頁。
自定義分頁樣式可以以相同的方式使用:
class MyViewSet(viewsets.GenericViewSet):
pagination_class = MyPagination