operations_project/apps/operation/pagination.py
2025-05-20 15:57:10 +08:00

31 lines
1.2 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.

from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response
class CustomPagination(PageNumberPagination):
"""自定义分页器,返回格式为 {code, message, data}"""
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
def get_paginated_response(self, data):
# 为那些没有name字段或name字段为空的项目设置默认值
for item in data:
if 'platforms' in item and len(item['platforms']) > 0:
# 只有当name为空或不存在时才使用platform_name作为默认值
if not item.get('name'):
platform = item['platforms'][0]
item['name'] = platform.get('platform_name', '')
return Response({
"code": 200,
"message": "获取数据成功",
"data": {
"count": self.page.paginator.count,
"next": self.get_next_link(),
"previous": self.get_previous_link(),
"results": data,
"page": self.page.number,
"pages": self.page.paginator.num_pages,
"page_size": self.page_size
}
})