DRF - Pagination

Nam Eun-Ji·2021년 11월 25일
0

Django REST Framework

목록 보기
2/4

global setting

# settings.py
REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 3
}

이렇게 설정하고 나면

{
    "count": 1023
    "next": "https://api.example.org/accounts/?page=5",
    "previous": "https://api.example.org/accounts/?page=3",
    "results": []
}
  • count : 전체 results의 개수가 몇개인지
  • next : 다음 페이지 url
  • previous : 전 페이지 url




local setting

  • 적용할 View에 pagination_class로 추가
  • 이 때 queryset의 order_by를 부여해서 어떤 순서로 보여줄지 명확히 하는 것이 좋다.
# pagination.py
from rest_framework.pagination import PageNumberPagination

class SmallSetPagination(PageNumberPagination):
    page_size = 3
    

# views.py
class EbookListCreateAPIView(generics.ListCreateAPIView):
    queryset = Ebook.objects.all().order_by("id")
    serializer_class = EbookSerializer
    permission_classes = [IsAdminUserOrReadOnly]
    pagination_class = SmallSetPagination
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글