小编Ant*_*nti的帖子

如何使用 drf-spectaulous 在 django rfw 中生成自定义分页的模式?

我正在努力在 django Rest 框架中正确生成自定义分页的模式。\n我正在使用 drf-spectaulous 进行模式生成。我的自定义分页包括djangos PageNumberPagination 不附带的总页数字段。\n响应已正确序列化并返回,并包含总页数,但我的 swagger 文档中的架构不包含该字段。\n这是我的代码:

\n

分页.py

\n
from rest_framework import pagination\nfrom rest_framework.response import Response\n\nclass CustomPagination(pagination.PageNumberPagination):\n    page_size = 10\n    page_size_query_param = 'page_size'\n    max_page_size = 100\n    page_query_param = 'p'\n    \n    def get_paginated_response(self, data):\n        return Response({\n            'page_size': self.page_size,\n            'total_objects': self.page.paginator.count,\n            'total_pages': self.page.paginator.num_pages,\n            'current_page_number': self.page.number,\n            'next': self.get_next_link(),\n            'previous': self.get_previous_link(),\n            'results': data,\n        })\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的观点:

\n

视图.py

\n
@extend_schema_view(\n    get=extend_schema(\n        parameters=[OpenApiParameter("q", OpenApiTypes.STR, OpenApiParameter.QUERY),],\n        request=TestStandardSearchSerializer,\n        responses=TestStandardSerializer\n        )\n    )\nclass TestStandardSearchView(ListAPIView):\n    serializer_class = TestStandardSearchSerializer\n    queryset = TestStandard.objects.all()\n    pagination_class = …
Run Code Online (Sandbox Code Playgroud)

pagination swagger django-rest-framework drf-spectacular

6
推荐指数
1
解决办法
3103
查看次数