From 2c2e5bc4cd6979a632078a3674f7e368b1a0af62 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 28 Feb 2024 15:00:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20=E5=8F=AF=E7=BB=99list=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=95=B0=E6=8D=AE=E6=B7=BB=E5=8A=A0=E9=A2=9D=E5=A4=96?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/viewsets.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/utils/viewsets.py b/apps/utils/viewsets.py index ea51fdb2..db669a4e 100755 --- a/apps/utils/viewsets.py +++ b/apps/utils/viewsets.py @@ -206,7 +206,24 @@ class CustomModelViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, ListModelMi type=openapi.TYPE_STRING, required=False), ]) def list(self, request, *args, **kwargs): - return super().list(request, *args, **kwargs) + queryset = self.filter_queryset(self.get_queryset()) + + page = self.paginate_queryset(queryset) + if page is not None: + serializer = self.get_serializer(page, many=True) + data = self.add_info_for_list(serializer.data) + return self.get_paginated_response(data) + + serializer = self.get_serializer(queryset, many=True) + data = self.add_info_for_list(serializer.data) + return Response(data) + + def add_info_for_list(self, data): + """给list返回数据添加额外信息 + + 给list返回数据添加额外信息 + """ + return data @swagger_auto_schema(request_body=ComplexSerializer, responses={200: {}}) @action(methods=['post'], detail=False, perms_map={'post': '*'})