ruo_python_django/admin-api/web/paginator.py
2025-07-25 10:03:06 +08:00

43 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
"""
@Author mengying
@Date 2024/6/13 14:27
@Email : 652044581@qq.com
@Desc : 分页器
"""
from rest_framework.exceptions import NotFound
from rest_framework.pagination import PageNumberPagination
class StandardResultsSetPagination(PageNumberPagination):
# 默认每页显示的数据条数
page_size = 10
# 获取URL参数中设置的每页显示数据条数
page_size_query_param = 'pageSize'
# 获取URL参数中传入的页码key
page_query_param = 'pageNum'
# 最大支持的每页显示的数据条数
max_page_size = 50
def paginate_queryset_data(self, queryset, request, view=None, serializer=None):
try:
queryset = super().paginate_queryset(queryset, request=request, view=view)
ser = serializer(queryset, many=True)
return ser.data
except NotFound as e:
return []
def paginate_queryset_count(self, queryset, request, view=None, serializer=None):
try:
res = {}
queryset = super().paginate_queryset(queryset, request=request, view=view)
ser = serializer(queryset, many=True)
res["data"] = ser.data
res["count"] = self.page.paginator.count
return res
except NotFound as e:
return {}