xxxxxxxxxx
from rest_framework.response import Response
from .serializers import BlogGetSerializer
from rest_framework.views import APIView
from .models import Blog
from rest_framework.pagination import PageNumberPagination
# my blog list
class MyBlogList(APIView, PageNumberPagination):
# this will output only 5 objects per page
page_size = 5
def get(self, request):
myBlogList = Blog.objects.get()
# paginate them
results = self.paginate_queryset(myBlogList, request, view=self)
serializer = BlogGetSerializer(results, many=True)
# send paginated data
return self.get_paginated_response(serializer.data)
# API => http://127.0.0.1:8000/blog/details/2/
xxxxxxxxxx
# stack overflow url: https://stackoverflow.com/questions/35830779/django-rest-framework-apiview-pagination
from rest_framework.pagination import LimitOffsetPagination
class EventNewsItems(APIView, LimitOffsetPagination):
def get(self, request, pk, format=None):
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
results = self.paginate_queryset(news, request, view=self)
serializer = NewsItemSerializer(results, many=True)
return self.get_paginated_response(serializer.data)
xxxxxxxxxx
from rest_framework.pagination import LimitOffsetPagination
class ProductsPagination(LimitOffsetPagination):
default_limit = 10
max_limit = 100
class EventNewsItems(APIView):
def get(self, request, pk, format=None):
event = Event.objects.get(pk=pk)
news = event.get_news_items().all()
pagination_class = ProductsPagination
results = self.paginate_queryset(news, request, view=self)
serializer = NewsItemSerializer(results, many=True)
return self.get_paginated_response(serializer.data)
xxxxxxxxxx
from rest_framework.pagination import PageNumberPagination
def PersonView(request):
paginator = PageNumberPagination()
paginator.page_size = 10
qs = Person.objects.all()
result_page = paginator.paginate_queryset(qs, request)
data= PersonSerializer(result_page, many=True).data
return paginator.get_paginated_response(data)
xxxxxxxxxx
from rest_framework.pagination import PageNumberPagination
def PersonView(request):
paginator = PageNumberPagination()
paginator.page_size = 10
qs = Person.objects.all()
result_page = paginator.paginate_queryset(qs, request)
data= PersonSerializer(result_page, many=True).data
return paginator.get_paginated_response(data)