2
我想實現ViewSet上的自定義分頁類,按the docs,但分頁設置只是沒有做一件事。這是我的ViewSet的代碼。如何讓自定義分頁類工作的Django休息框架v3.6
from rest_framework import status, permissions, viewsets
from rest_framework.pagination import PageNumberPagination
class ProductViewSetPagination(PageNumberPagination):
page_size = 5
page_size_query_param = 'page_size'
max_page_size = 1000
class ProductViewSet(viewsets.ModelViewSet):
permission_classes = (permissions.IsAuthenticated,)
serializer_class = ProductSerializer
pagination_class = ProductViewSetPagination
# ...
def list(self, request):
#get_queryset is also overridden to accept filters in query_params
queryset = self.get_queryset()
if not queryset.exists():
return Response(status=status.HTTP_204_NO_CONTENT)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
我甚至增加了一些默認的settings.py文件,但我仍然讓所有的產品實例單頁上的product-list
視圖。我已經嘗試將page
和page_size
查詢參數添加到URL中;這不會改變任何東西。
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
我錯過了什麼?
你使用默認的列表方式或覆蓋呢? –
它被覆蓋。我已經添加了代碼。 – Escher
我認爲,如果你重寫列表方法,你必須實現自己的分頁呢? – Escher