diff --git a/apps/utils/viewsets.py b/apps/utils/viewsets.py index 63cc8d90..932d1056 100755 --- a/apps/utils/viewsets.py +++ b/apps/utils/viewsets.py @@ -15,6 +15,7 @@ from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map from apps.utils.queryset import get_child_queryset2 from apps.utils.serializers import PkSerializer, ComplexSerializer from rest_framework.throttling import UserRateThrottle +from drf_yasg.utils import swagger_auto_schema class CustomGenericViewSet(MyLoggingMixin, GenericViewSet): @@ -46,10 +47,6 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet): return super().get_serializer_class() def __init__(self, *args, **kwargs): - try: - self.cquery_serializer_class = self.list_serializer_class if self.list_serializer_class else self.serializer_class - except: - pass super().__init__(*args, **kwargs) if self.perms_map: for k, v in self.perms_map.items(): @@ -179,7 +176,8 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin, else: raise ValidationError(**PKS_ERROR) - @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=ComplexSerializer) + @swagger_auto_schema(request_body=ComplexSerializer, responses={200: {}}) + @action(methods=['post'], detail=False, perms_map={'post': '*'}) def cquery(self, request): """复杂查询 @@ -209,8 +207,8 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin, raise ParseError(str(e)) page = self.paginate_queryset(new_qs) if page is not None: - serializer = self.cquery_serializer_class(page, many=True) + serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) - serializer = self.cquery_serializer_class(new_qs, many=True) + serializer = self.get_serializer(new_qs, many=True) return Response(serializer.data)