perf: 自动化name 唯一键 校验 (#9668)

Co-authored-by: feng <1304903146@qq.com>
This commit is contained in:
fit2bot
2023-02-21 18:31:42 +08:00
committed by GitHub
parent 266e7e0dd7
commit b41880d4f2
8 changed files with 89 additions and 57 deletions

View File

@@ -1,14 +1,14 @@
from django.utils.translation import ugettext as _
from rest_framework import serializers
from ops.mixin import PeriodTaskSerializerMixin
from accounts.models import AutomationExecution
from assets.const import AutomationTypes
from assets.models import Asset, Node, BaseAutomation
from accounts.models import AutomationExecution
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
from common.utils import get_logger
from common.const.choices import Trigger
from common.serializers.fields import ObjectRelatedField, LabeledChoiceField
from common.utils import get_logger
from ops.mixin import PeriodTaskSerializerMixin
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
logger = get_logger(__file__)
@@ -37,6 +37,15 @@ class BaseAutomationSerializer(PeriodTaskSerializerMixin, BulkOrgResourceModelSe
'executed_amount': {'label': _('Executed amount')},
}
def validate_name(self, name):
if BaseAutomation.objects.filter(name=name, type=self.model_type).exists():
raise serializers.ValidationError(_('Name already exists'))
return name
@property
def model_type(self):
raise NotImplementedError
class AutomationExecutionSerializer(serializers.ModelSerializer):
snapshot = serializers.SerializerMethodField(label=_('Automation snapshot'))