From 726f90ab168ae6e074383742d59d790c0000ea3d Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 16 Feb 2023 15:55:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=9B=E5=BB=BA=20e?= =?UTF-8?q?s=20=E5=91=BD=E4=BB=A4=E5=AD=98=E5=82=A8=E5=90=8E=E5=8F=B0=20me?= =?UTF-8?q?ta.hosts=20=E8=A2=AB=E4=BF=AE=E6=94=B9=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98;deepcopy=20dict=20list=20value=20=E5=9C=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/audits/utils.py | 5 +++-- apps/terminal/models/component/storage.py | 9 ++------- 2 files changed, 5 insertions(+), 9 deletions(-) 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):