class RecordView(ModelViewSet):
pagination_class = RecordPage
serializer_class = RecordSerializer
queryset = Record.objects.all()
def list():
return Response()
이러한 ModelViewSet에서 list를 오버라이드했는데 그 전에는 잘 적용되던 페이지네이션과 필터링이 깨졌다.
정확한 원인은 찾지 못했지만 아래의 답변을 보면 상속 과정으로 인해 발생하는 문제라고 추측된다.
해결법은 오버라이드한 함수에서 다시 페이지네이션과 필터링을 적용시켜주면 된다.
class RecordView(ModelViewSet):
pagination_class = RecordPage
serializer_class = RecordSerializer
queryset = Record.objects.all()
def list():
qs = Record.object.all()
qs = self.filter_queryset(qs)
page = self.paginate_queryset(qs)
if page is not None:
serializer = RecordSerializer(page,many=True)
return self.get_paginated_response(serializer.data)
serializer = RecordSerializer(qs,many=True)
return Response(serializer.data)