From bf074b3c61bee398fe1780223b21b75481e0be4d Mon Sep 17 00:00:00 2001 From: hexiaonan-800 Date: Sun, 20 Sep 2026 14:13:55 +0800 Subject: [PATCH] feat: application node validation --- .../workflow/nodes/application_node/application_node.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/application/workflow/nodes/application_node/application_node.py b/apps/application/workflow/nodes/application_node/application_node.py index 0e008dc4163..e94f1d8186d 100644 --- a/apps/application/workflow/nodes/application_node/application_node.py +++ b/apps/application/workflow/nodes/application_node/application_node.py @@ -7,6 +7,7 @@ """ import uuid_utils.compat as uuid +from django.db import connection from django.db.models import QuerySet from django.utils.translation import gettext_lazy as _ from rest_framework import serializers @@ -19,6 +20,7 @@ from application.workflow.status import Status from application.workflow.workflow_manage import WorkflowManage, CallBack from chat.serializers.chat_history import ChatHistory +from common.exception.app_exception import AppApiException def string_to_uuid(input_str): @@ -36,6 +38,13 @@ class ApplicationNodeSerializer(serializers.Serializer): video_list = serializers.ListField(required=False, label=_("Video")) node_data = serializers.DictField(required=False, allow_null=True, label=_("Form Data")) + def is_valid(self, *, raise_exception=False): + super().is_valid(raise_exception=True) + application_id = self.data.get("application_id") + f_app = QuerySet(Application).filter(id=application_id).first() + if f_app is None: + raise AppApiException(500, _("The application has been deleted")) + class ApplicationNode(INode): serializer_class = ApplicationNodeSerializer