2025-05-13 11:58:17 +08:00
|
|
|
|
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):
|
2025-05-20 15:57:10 +08:00
|
|
|
|
# 为那些没有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', '')
|
|
|
|
|
|
2025-05-13 11:58:17 +08:00
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
})
|