From 2b7f90349cf539c5d4f8ffef988b6d178de85dcc Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 15 Mar 2023 14:14:48 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E7=9A=84=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/serializers/asset/common.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py index e9fc80e4e..d7dc7b175 100644 --- a/apps/assets/serializers/asset/common.py +++ b/apps/assets/serializers/asset/common.py @@ -158,7 +158,7 @@ class AssetSerializer(BulkOrgResourceModelSerializer, WritableNestedModelSeriali self._init_field_choices() def _get_protocols_required_default(self): - platform = self._initial_data_platform + platform = self._asset_platform platform_protocols = platform.protocols.all() protocols_default = [p for p in platform_protocols if p.default] protocols_required = [p for p in platform_protocols if p.required or p.primary] @@ -214,20 +214,22 @@ class AssetSerializer(BulkOrgResourceModelSerializer, WritableNestedModelSeriali instance.nodes.set(nodes_to_set) @property - def _initial_data_platform(self): - if self.instance: - return self.instance.platform - + def _asset_platform(self): platform_id = self.initial_data.get('platform') if isinstance(platform_id, dict): platform_id = platform_id.get('id') or platform_id.get('pk') - platform = Platform.objects.filter(id=platform_id).first() + + if not platform_id and self.instance: + platform = self.instance.platform + else: + platform = Platform.objects.filter(id=platform_id).first() + if not platform: raise serializers.ValidationError({'platform': _("Platform not exist")}) return platform def validate_domain(self, value): - platform = self._initial_data_platform + platform = self._asset_platform if platform.domain_enabled: return value else: