10
我有一个非常简单的APIView
,但我不知道如何在这里设置分页。 在这种情况下,我选择Event
与给定pk
,然后我得到所有NewsItems
分配给此Event
。Django Rest框架 - APIView分页
pagination_class = LimitOffsetPagination
工作正常,当我在ListCreateAPIView
开始定义查询集,例如。 queryset = Event.objects.all()
但与定制get
:
class EventNewsItems(APIView):
pagination_class = LimitOffsetPagination
def get(self, request, pk, format=None):
#user = request.user
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
serializer = NewsItemSerializer(news, many=True, context={'request':request})
response = Response(serializer.data, status=status.HTTP_200_OK)
return response
解决:
def get(self, request, pk, format=None):
#user = request.user
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
paginator = LimitOffsetPagination()
result_page = paginator.paginate_queryset(news, request)
serializer = NewsItemSerializer(result_page, many=True, context={'request':request})
response = Response(serializer.data, status=status.HTTP_200_OK)
return response
回顾这次讨论中,看起来像这个家伙的解决您的问题https://github.com/tomchristie/django-rest-framework/issues/ 3030 – inlanger
嘿,@ user3128673我想知道你是否发现我的答案有帮助。 –