Skip to content

Commit 8375f82

Browse files
committed
fix: Trigger must have at least one task
1 parent 3ab157a commit 8375f82

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

apps/trigger/serializers/trigger.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,6 @@ def insert(self, instance, with_valid=True):
373373
raise AppApiException(500, _('Trigger task can not be empty'))
374374

375375
if trigger_model.is_active:
376-
377376
deploy(TriggerModelSerializer(trigger_model).data, **{})
378377
return TriggerResponse(trigger_model).data
379378

@@ -516,6 +515,10 @@ def edit(self, instance: Dict, with_valid=True):
516515
trigger_tasks = instance.get('trigger_task')
517516

518517
if trigger_tasks is not None:
518+
# 检查是否为空列表
519+
if not trigger_tasks:
520+
raise serializers.ValidationError(_('Trigger must have at least one task'))
521+
519522
is_active_map = TriggerSerializer.batch_get_source_active_status(trigger_tasks)
520523

521524
trigger_task_model_list = [TriggerTask(
@@ -531,6 +534,10 @@ def edit(self, instance: Dict, with_valid=True):
531534
TriggerTask.objects.filter(trigger_id=trigger_id).delete()
532535

533536
TriggerTask.objects.bulk_create(trigger_task_model_list)
537+
else:
538+
# 用户没提交 trigger_task 字段,确保数据库中有 task
539+
if not TriggerTask.objects.filter(trigger_id=trigger_id).exists():
540+
raise serializers.ValidationError(_('Trigger must have at least one task'))
534541

535542
# 重新部署触发器任务
536543
if need_redeploy:

0 commit comments

Comments
 (0)