Ich habe eine sehr einfache APIView
, aber ich weiß nicht, wie man die Seitennummerierung hier einrichten. In diesem Szenario wähle ich eine Event
mit gegeben pk
, dann bekomme ich alle NewsItems
zugewiesen Event
.Django Rest Framework - APIView Seitennummerierung
pagination_class = LimitOffsetPagination
funktioniert OK, wenn ich am Anfang in ListCreateAPIView
, z. queryset = Event.objects.all()
aber nicht mit benutzerdefinierten 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
Gelöst:
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
Bewertung dieser Diskussion sieht, wie diese Jungs Ihr Problem lösen https://github.com/tomchristie/django-rest-framework/issues/ 3030 – inlanger
Hey, @ user3128673 Ich habe mich gefragt, ob du meine Antwort hilfreich gefunden hast. –