【发布时间】:2016-06-20 05:43:01
【问题描述】:
我有一个非常简单的APIView,但我不知道如何在这里设置分页。
在这种情况下,我选择一个带有给定pk 的Event,然后我将所有NewsItems 分配给这个Event。
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
【问题讨论】:
-
查看这个讨论,看起来这家伙解决了你的问题github.com/tomchristie/django-rest-framework/issues/3030
-
嘿,@user3128673 我想知道我的回答是否有帮助。
标签: python django pagination django-rest-framework