diff --git a/apps/trigger/serializers/trigger.py b/apps/trigger/serializers/trigger.py index c7a3e85bb3f..187ebdfc219 100644 --- a/apps/trigger/serializers/trigger.py +++ b/apps/trigger/serializers/trigger.py @@ -373,7 +373,6 @@ def insert(self, instance, with_valid=True): raise AppApiException(500, _('Trigger task can not be empty')) if trigger_model.is_active: - deploy(TriggerModelSerializer(trigger_model).data, **{}) return TriggerResponse(trigger_model).data @@ -516,6 +515,10 @@ def edit(self, instance: Dict, with_valid=True): trigger_tasks = instance.get('trigger_task') if trigger_tasks is not None: + # 检查是否为空列表 + if not trigger_tasks: + raise serializers.ValidationError(_('Trigger must have at least one task')) + is_active_map = TriggerSerializer.batch_get_source_active_status(trigger_tasks) trigger_task_model_list = [TriggerTask( @@ -531,6 +534,10 @@ def edit(self, instance: Dict, with_valid=True): TriggerTask.objects.filter(trigger_id=trigger_id).delete() TriggerTask.objects.bulk_create(trigger_task_model_list) + else: + # 用户没提交 trigger_task 字段,确保数据库中有 task + if not TriggerTask.objects.filter(trigger_id=trigger_id).exists(): + raise serializers.ValidationError(_('Trigger must have at least one task')) # 重新部署触发器任务 if need_redeploy: