我使用APIView
獲取和發佈項目。
我想使用Django Rest Framework爲我的API實現分頁,但它不起作用。分頁不在DRF中工作APIView
我想每頁顯示10項,但當我做api/v1/items?page=1
,我得到的所有項目,如果我只是做api/v1/items
我得到一個空的列表。
這裏是我做了什麼:
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
class ItemsAPIView(APIView):
permission_classes = (permissions.IsAuthenticated,)
def get(self, request, format=None):
"""
Return a list of all items of this user.
"""
reply = {}
page = request.GET.get('page')
print ('page is', page)
try:
products = BaseItem.objects.owned_items().filter(owner=request.user)
reply['data'] = OwnedItemSerializer(products, many=True).data
items = BaseItem.objects.filter(owner=request.user)
paginator = Paginator(items, 1)
items_with_pagination = paginator.page(page)
if page is not None:
reply['data'].extend(ItemSerializer(items_with_pagination, many=True).data)
reply['data'].extend(ItemSerializer(items, many=True).data)
嘿,@pythonBeginner我想知道,你有沒有找到任何答案有幫助定義
pagination_class
? –