Я настроил пользовательскую нумерацию страниц для одного из моих приложений, с которыми я сталкиваюсь, проблема заключается в том, что размер_страницы показывает только значение по умолчанию, которое установлено в приложении, но не изменяется в соответствии со значениями, отправленными в параметре запроса. Куда я иду не так?
class CustomPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
def get_paginated_response(self, data):
return Response({"status": True,
"data": {
'results': data,
"meta": {
'page_count':self.page.paginator.num_pages,
'total_results': self.page.paginator.count,
'current_page_no': self.page.number,
'limit': self.page_size,
'last_page': self.page.has_next()
}}},
status=status.HTTP_200_OK)
Выходные данные page_size всегда равны 10, даже если я установил для параметра запроса другое значение. Например: он должен измениться на 2, если пользователь установил page_size = 2 в параметрах запроса.
редактирование:
Код для просмотра
class ListPCAPIView(ListAPIView):
serializer_class = ListPCSerializer
def get(self, request):
user = self.request.user
pc = Pc.objects.filter(
user_id=user).order_by('pc_name')
if pc:
page = self.paginate_queryset(pc)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
else:
raise CustomException(
detail="pc list is empty.",
status_code=status.HTTP_400_BAD_REQUEST)