From 2d5e06241dd5bba30a3f1ff1c8c99f2d00263e54 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 8 Mar 2024 18:14:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20base=20=E6=94=AF=E6=8C=81=E4=BB=8Ereques?= =?UTF-8?q?t.data=E4=B8=AD=E8=8E=B7=E5=8F=96page=E5=92=8Cpage=5Fsize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/pagination.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/utils/pagination.py b/apps/utils/pagination.py index c8fa0f12..89678d92 100755 --- a/apps/utils/pagination.py +++ b/apps/utils/pagination.py @@ -1,4 +1,4 @@ -from rest_framework.pagination import PageNumberPagination +from rest_framework.pagination import PageNumberPagination, _positive_int from rest_framework.exceptions import ParseError @@ -11,14 +11,19 @@ class MyPagination(PageNumberPagination): def get_page_number(self, request, paginator): if 'page' in request.data: - request.query_params['page'] = request.data['page'] - del request.data['page'] + return request.data['page'] return super().get_page_number(request, paginator) def get_page_size(self, request): if 'page_size' in request.data: - request.query_params['page_size'] = request.data['page_size'] - del request.data['page_size'] + try: + return _positive_int( + request.data['page_size'], + strict=True, + cutoff=self.max_page_size + ) + except (KeyError, ValueError): + pass return super().get_page_size(request) def paginate_queryset(self, queryset, request, view=None):