复杂查询 swagger

This commit is contained in:
caoqianming 2022-11-10 15:32:25 +08:00
parent d961a02378
commit 2badb9c45c
1 changed files with 5 additions and 7 deletions

View File

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