perf: Export template with prompts

pull/14194/head
feng 2024-09-18 18:25:25 +08:00 committed by feng626
parent 4e719ecacd
commit ef2b12fa0f
4 changed files with 11 additions and 4 deletions

View File

@ -247,6 +247,7 @@ class AccountSerializer(AccountCreateUpdateSerializerMixin, BaseAccountSerialize
'name': {'required': False}, 'name': {'required': False},
'source_id': {'required': False, 'allow_null': True}, 'source_id': {'required': False, 'allow_null': True},
} }
fields_unimport_template = ['params']
@classmethod @classmethod
def setup_eager_loading(cls, queryset): def setup_eager_loading(cls, queryset):

View File

@ -16,6 +16,7 @@ class CustomSerializer(AssetSerializer):
class Meta(AssetSerializer.Meta): class Meta(AssetSerializer.Meta):
model = Custom model = Custom
fields = AssetSerializer.Meta.fields + ['custom_info'] fields = AssetSerializer.Meta.fields + ['custom_info']
fields_unimport_template = ['custom_info']
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)

View File

@ -147,6 +147,10 @@ class PlatformProtocolSerializer(serializers.ModelSerializer):
name, port = data.split('/') name, port = data.split('/')
return {'name': name, 'port': port} return {'name': name, 'port': port}
@staticmethod
def get_render_help_text():
return _('Protocols, format is ["protocol/port"]')
class PlatformCustomField(serializers.Serializer): class PlatformCustomField(serializers.Serializer):
TYPE_CHOICES = [(t, t) for t, c in type_field_map.items()] TYPE_CHOICES = [(t, t) for t, c in type_field_map.items()]

View File

@ -48,15 +48,16 @@ class BaseFileRenderer(BaseRenderer):
def get_rendered_fields(self): def get_rendered_fields(self):
fields = self.serializer.fields fields = self.serializer.fields
meta = getattr(self.serializer, 'Meta', None)
if self.template == 'import': 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 = [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': elif self.template == 'update':
fields = [v for k, v in fields.items() if not v.read_only and k != "org_id"] fields = [v for k, v in fields.items() if not v.read_only and k != "org_id"]
else: else:
fields = [v for k, v in fields.items() if not v.write_only and k != "org_id"] 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_unexport = getattr(meta, 'fields_unexport', [])
fields = [v for v in fields if v.field_name not in fields_unexport] fields = [v for v in fields if v.field_name not in fields_unexport]
return fields return fields