fix: base 支持从request.data中获取page和page_size
This commit is contained in:
parent
78306f7a29
commit
2d5e06241d
|
@ -1,4 +1,4 @@
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination, _positive_int
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,14 +11,19 @@ class MyPagination(PageNumberPagination):
|
||||||
|
|
||||||
def get_page_number(self, request, paginator):
|
def get_page_number(self, request, paginator):
|
||||||
if 'page' in request.data:
|
if 'page' in request.data:
|
||||||
request.query_params['page'] = request.data['page']
|
return request.data['page']
|
||||||
del request.data['page']
|
|
||||||
return super().get_page_number(request, paginator)
|
return super().get_page_number(request, paginator)
|
||||||
|
|
||||||
def get_page_size(self, request):
|
def get_page_size(self, request):
|
||||||
if 'page_size' in request.data:
|
if 'page_size' in request.data:
|
||||||
request.query_params['page_size'] = request.data['page_size']
|
try:
|
||||||
del request.data['page_size']
|
return _positive_int(
|
||||||
|
request.data['page_size'],
|
||||||
|
strict=True,
|
||||||
|
cutoff=self.max_page_size
|
||||||
|
)
|
||||||
|
except (KeyError, ValueError):
|
||||||
|
pass
|
||||||
return super().get_page_size(request)
|
return super().get_page_size(request)
|
||||||
|
|
||||||
def paginate_queryset(self, queryset, request, view=None):
|
def paginate_queryset(self, queryset, request, view=None):
|
||||||
|
|
Loading…
Reference in New Issue