diff --git a/apps/audits/utils.py b/apps/audits/utils.py index 3ff42177c..877c75813 100644 --- a/apps/audits/utils.py +++ b/apps/audits/utils.py @@ -1,4 +1,5 @@ import codecs +import copy import csv from itertools import chain @@ -76,8 +77,8 @@ def _get_instance_field_value( if getattr(f, 'primary_key', False): f.verbose_name = 'id' - elif isinstance(value, list): - value = [str(v) for v in value] + elif isinstance(value, (list, dict)): + value = copy.deepcopy(value) elif isinstance(f, models.OneToOneField) and isinstance(value, models.Model): nested_data = _get_instance_field_value( value, include_model_fields, model_need_continue_fields, ('id',) diff --git a/apps/terminal/models/component/storage.py b/apps/terminal/models/component/storage.py index dc064c0d0..0d4a5347f 100644 --- a/apps/terminal/models/component/storage.py +++ b/apps/terminal/models/component/storage.py @@ -75,14 +75,9 @@ class CommandStorage(CommonStorageModelMixin, JMSBaseModel): @property def config(self): - config = self.meta + config = copy.deepcopy(self.meta) config.update({'TYPE': self.type}) - # 处理 hosts 对象, 正常应该是list, 但是有时候是 str, debug 未果 - hosts = config.get('HOSTS', []) - if isinstance(hosts, str) and ',' in hosts: - hosts = hosts.split(',') - config['HOSTS'] = hosts - return copy.deepcopy(config) + return config @property def valid_config(self):