diff --git a/apps/trigger/serializers/task_source_trigger.py b/apps/trigger/serializers/task_source_trigger.py index 7a9fd201bec..44a012eeb9c 100644 --- a/apps/trigger/serializers/task_source_trigger.py +++ b/apps/trigger/serializers/task_source_trigger.py @@ -126,16 +126,20 @@ def edit(self, instance: Dict, with_valid=True): if not trigger: raise serializers.ValidationError(_('Trigger not found')) task_source_trigger_edit_field_list = ['name', 'desc', 'trigger_type', 'trigger_setting', 'meta'] + trigger_deploy_edit_field_list = ['trigger_type', 'trigger_setting'] + + need_redeploy = any(field in instance for field in trigger_deploy_edit_field_list) for field in task_source_trigger_edit_field_list: if field in valid_data: setattr(trigger, field, valid_data.get(field)) trigger.save() - if trigger.is_active: - deploy(ToolModelSerializer(trigger).data, **{}) - else: - undeploy(TriggerModelSerializer(trigger).data, **{}) + if need_redeploy: + if trigger.is_active: + deploy(ToolModelSerializer(trigger).data, **{}) + else: + undeploy(TriggerModelSerializer(trigger).data, **{}) return self.one()