From ef2b12fa0f6d45876b82ef41352ac3937cedae8b Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Wed, 18 Sep 2024 18:25:25 +0800 Subject: [PATCH] perf: Export template with prompts --- apps/accounts/serializers/account/account.py | 1 + apps/assets/serializers/asset/custom.py | 1 + apps/assets/serializers/platform.py | 4 ++++ apps/common/drf/renders/base.py | 9 +++++---- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/accounts/serializers/account/account.py b/apps/accounts/serializers/account/account.py index 74c8ce3b1..a6d31671b 100644 --- a/apps/accounts/serializers/account/account.py +++ b/apps/accounts/serializers/account/account.py @@ -247,6 +247,7 @@ class AccountSerializer(AccountCreateUpdateSerializerMixin, BaseAccountSerialize 'name': {'required': False}, 'source_id': {'required': False, 'allow_null': True}, } + fields_unimport_template = ['params'] @classmethod def setup_eager_loading(cls, queryset): diff --git a/apps/assets/serializers/asset/custom.py b/apps/assets/serializers/asset/custom.py index 151597b44..457c425d6 100644 --- a/apps/assets/serializers/asset/custom.py +++ b/apps/assets/serializers/asset/custom.py @@ -16,6 +16,7 @@ class CustomSerializer(AssetSerializer): class Meta(AssetSerializer.Meta): model = Custom fields = AssetSerializer.Meta.fields + ['custom_info'] + fields_unimport_template = ['custom_info'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/apps/assets/serializers/platform.py b/apps/assets/serializers/platform.py index 2eb5a44b2..38c8bd134 100644 --- a/apps/assets/serializers/platform.py +++ b/apps/assets/serializers/platform.py @@ -147,6 +147,10 @@ class PlatformProtocolSerializer(serializers.ModelSerializer): name, port = data.split('/') return {'name': name, 'port': port} + @staticmethod + def get_render_help_text(): + return _('Protocols, format is ["protocol/port"]') + class PlatformCustomField(serializers.Serializer): TYPE_CHOICES = [(t, t) for t, c in type_field_map.items()] diff --git a/apps/common/drf/renders/base.py b/apps/common/drf/renders/base.py index b7361c729..db081c3d3 100644 --- a/apps/common/drf/renders/base.py +++ b/apps/common/drf/renders/base.py @@ -48,17 +48,18 @@ class BaseFileRenderer(BaseRenderer): def get_rendered_fields(self): fields = self.serializer.fields + meta = getattr(self.serializer, 'Meta', None) if self.template == 'import': fields = [v for k, v in fields.items() if not v.read_only and k != "org_id" and k != 'id'] + fields_unimport = getattr(meta, 'fields_unimport_template', []) + fields = [v for v in fields if v.field_name not in fields_unimport] elif self.template == 'update': fields = [v for k, v in fields.items() if not v.read_only and k != "org_id"] else: fields = [v for k, v in fields.items() if not v.write_only and k != "org_id"] - meta = getattr(self.serializer, 'Meta', None) - if meta: - fields_unexport = getattr(meta, 'fields_unexport', []) - fields = [v for v in fields if v.field_name not in fields_unexport] + fields_unexport = getattr(meta, 'fields_unexport', []) + fields = [v for v in fields if v.field_name not in fields_unexport] return fields @staticmethod