我試圖讓我的API每頁最多返回10個。這有助於我無限加載。該API網址將我試圖看起來像這樣:Django Rest框架分頁
www.mysite.com/api/test/?user=5&page=1
但是,這是行不通的。
我跟着官方docs here without成功。
我只修改了兩個文件,settings.py & rest_views.py。
settings.py-
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination'
}
rest_views.py-
from django.core.paginator import Paginator
...
wardrobematch = {
'user': lambda x: ('user__pk', x)
}
class WardrobeListView(APIView):
renderer_classes = (JSONRenderer,)
paginate_by = 10
paginate_by_param = 'page_size'
max_paginate_by = 100
def get(self, request, *args, **kwargs):
filters = {}
for key, value in request.GET.items():
key = key.lower()
if key in wardrobematch:
lookup, val = wardrobematch[key](value.lower())
filters[lookup] = val
qset = (
Analytic.objects
.filter(like=True,**filters)
.order_by('-updated',)
# .distinct('product_id',)
.values('product_id', 'product__name', 'product__brand', 'product__store__store_name', 'product__variation__image__image', 'product__variation__price__price',)
)
return Response(qset)
啊我見式這個答案讓我輸入錯誤(<146 1>不是JSON序列化)。我以前沒有過。你能建議嗎? – Ycon
這是我的錯誤回溯http://dpaste.com/2EA0KEJ – Ycon
對不起,延遲。我更新了代碼。請嘗試.. – Anoop