REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES' : [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
DRF 공식문서에서 페이지네이션에 대해 설명이 있길래
그대로 적용해보았는데 안되길래
여기저기 찾아보면서 좀 더 알아보았다.
DRF의 Pagination 설정은 저렇게 settings.py에 설정해주면
전역적으로 pagination이 적용되고 각 view별로 설정해줄수도 있는데
APIView 사용 시에는 페이지네이션을 적용시키려면 추가 설정이 필요하다는 것
https://stackoverflow.com/questions/35830779/django-rest-framework-apiview-pagination
Django Rest Framework - APIView Pagination
I have a very simple APIView, but I don't know how to setup pagination here. In this scenario I select an Event with given pk, then I get all the NewsItems assigned to this Event. pagination_clas...
stackoverflow.com
그래서 위 글을 참고해서 그대로 적용시켜보았다.
class ProductList(APIView):
paginator = PageNumberPagination()
def get(self, request):
products = Product.objects.all()
result_page = self.paginator.paginate_queryset(products, request)
serializer = ProductSerializer(result_page, many=True)
return self.paginator.get_paginated_response(serializer.data)
결과는 성공적으로 적용되었다
끝!
'TIL > Python' 카테고리의 다른 글
Django Test code (0) | 2024.05.03 |
---|---|
DRF JWT로 로그아웃 기능 넣기 (0) | 2024.05.01 |
DRF Serializer 패스워드 해싱 (0) | 2024.04.26 |
Django HTTP 301 에러 (0) | 2024.04.22 |
[django project] 5. 해시태그 (0) | 2024.04.18 |