复杂查询 swagger
This commit is contained in:
parent
d961a02378
commit
2badb9c45c
|
@ -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.queryset import get_child_queryset2
|
||||||
from apps.utils.serializers import PkSerializer, ComplexSerializer
|
from apps.utils.serializers import PkSerializer, ComplexSerializer
|
||||||
from rest_framework.throttling import UserRateThrottle
|
from rest_framework.throttling import UserRateThrottle
|
||||||
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
|
|
||||||
|
|
||||||
class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
||||||
|
@ -46,10 +47,6 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
||||||
return super().get_serializer_class()
|
return super().get_serializer_class()
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
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)
|
super().__init__(*args, **kwargs)
|
||||||
if self.perms_map:
|
if self.perms_map:
|
||||||
for k, v in self.perms_map.items():
|
for k, v in self.perms_map.items():
|
||||||
|
@ -179,7 +176,8 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin,
|
||||||
else:
|
else:
|
||||||
raise ValidationError(**PKS_ERROR)
|
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):
|
def cquery(self, request):
|
||||||
"""复杂查询
|
"""复杂查询
|
||||||
|
|
||||||
|
@ -209,8 +207,8 @@ class CustomModelViewSet(CreateModelMixin, UpdateModelMixin, ListModelMixin,
|
||||||
raise ParseError(str(e))
|
raise ParseError(str(e))
|
||||||
page = self.paginate_queryset(new_qs)
|
page = self.paginate_queryset(new_qs)
|
||||||
if page is not None:
|
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)
|
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)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue