From f5635ee50eb658cad3071255e3ccb8d0b0b5b796 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:05:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=85=B3=E8=81=94=E7=9F=A5=E8=AF=86=E5=BA=93=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=9C=AA=E5=88=A0=E9=99=A4=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=20(#698)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializers/application_serializers.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/application/serializers/application_serializers.py b/apps/application/serializers/application_serializers.py index 7c051bcf1..ab34ba489 100644 --- a/apps/application/serializers/application_serializers.py +++ b/apps/application/serializers/application_serializers.py @@ -550,13 +550,12 @@ class ApplicationSerializer(serializers.Serializer): application.desc = node_data.get('desc') application.prologue = node_data.get('prologue') dataset_list = self.list_dataset(with_valid=False) - dataset_id_list = self.update_reverse_search_node(work_flow, - [str(dataset.get('id')) for dataset in dataset_list]) - + application_dataset_id_list = [str(dataset.get('id')) for dataset in dataset_list] + dataset_id_list = self.update_reverse_search_node(work_flow, application_dataset_id_list) application.work_flow = work_flow application.save() # 插入知识库关联关系 - self.save_application_mapping(dataset_id_list, application.id) + self.save_application_mapping(application_dataset_id_list, dataset_id_list, application.id) work_flow_version = WorkFlowVersion(work_flow=work_flow, application=application) work_flow_version.save() return True @@ -662,16 +661,16 @@ class ApplicationSerializer(serializers.Serializer): if not application_dataset_id_list.__contains__(dataset_id): raise AppApiException(500, f"未知的知识库id${dataset_id},无法关联") - self.save_application_mapping(application_dataset_id_list, application_id) + self.save_application_mapping(application_dataset_id_list, dataset_id_list, application_id) chat_cache.clear_by_application_id(application_id) return self.one(with_valid=False) @staticmethod - def save_application_mapping(dataset_id_list, application_id): + def save_application_mapping(application_dataset_id_list, dataset_id_list, application_id): # 需要排除已删除的数据集 dataset_id_list = [dataset.id for dataset in QuerySet(DataSet).filter(id__in=dataset_id_list)] # 删除已经关联的id - QuerySet(ApplicationDatasetMapping).filter(dataset_id__in=dataset_id_list, + QuerySet(ApplicationDatasetMapping).filter(dataset_id__in=application_dataset_id_list, application_id=application_id).delete() # 插入 QuerySet(ApplicationDatasetMapping).bulk_create(