fix: 修改访问swagger会产生的错误

This commit is contained in:
ibuler
2020-12-11 17:21:52 +08:00
committed by Jiangjie.Bai
parent f9cf2a243b
commit b9717eece3
10 changed files with 62 additions and 2 deletions

View File

@@ -1,3 +1,5 @@
import uuid
from common.exceptions import JMSException
from orgs.models import Organization
from .. import models
@@ -7,6 +9,8 @@ class ApplicationAttrsSerializerViewMixin:
def get_serializer_class(self):
serializer_class = super().get_serializer_class()
if getattr(self, 'swagger_fake_view', False):
return serializer_class
app_type = self.request.query_params.get('type')
app_category = self.request.query_params.get('category')
type_options = list(dict(models.Category.get_all_type_serializer_mapper()).keys())
@@ -38,12 +42,16 @@ class ApplicationAttrsSerializerViewMixin:
if app_type:
# action: create / update / list / retrieve / metadata
attrs_cls = models.Category.get_type_serializer_cls(app_type)
class_name = 'ApplicationDynamicSerializer{}'.format(app_type.title())
elif app_category:
# action: list / retrieve / metadata
attrs_cls = models.Category.get_category_serializer_cls(app_category)
class_name = 'ApplicationDynamicSerializer{}'.format(app_category.title())
else:
attrs_cls = models.Category.get_no_password_serializer_cls()
return type('ApplicationDynamicSerializer', (serializer_class,), {'attrs': attrs_cls()})
class_name = 'ApplicationDynamicSerializer'
cls = type(class_name, (serializer_class,), {'attrs': attrs_cls()})
return cls
class SerializeApplicationToTreeNodeMixin: