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 } })