Tôi có một đơn giản APIView
, nhưng tôi không biết cách thiết lập pagination tại đây. Trong trường hợp này, tôi chọn một Event
với pk
nhất định, sau đó tôi nhận được tất cả các NewsItems
được gán cho Event
này.Django Rest Framework - APIView Pagination
pagination_class = LimitOffsetPagination
hoạt động OK khi tôi xác định bộ truy vấn ở đầu trong ListCreateAPIView
, cho ví dụ. queryset = Event.objects.all()
nhưng không phải với tùy chỉnh 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
quyết:
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
Xem lại cuộc thảo luận này, có vẻ như chàng trai này giải quyết vấn đề của bạn https://github.com/tomchristie/django-rest-framework/issues/ 3030 – inlanger
Hey, @ user3128673 Tôi đã tự hỏi nếu bạn tìm thấy câu trả lời của tôi hữu ích. –