Skip to content

Commit f5635ee

Browse files
authored
fix: 修复应用关联知识库取消关联未删除关联关系 (#698)
1 parent 7b5658f commit f5635ee

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

apps/application/serializers/application_serializers.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -550,13 +550,12 @@ def publish(self, instance, with_valid=True):
550550
application.desc = node_data.get('desc')
551551
application.prologue = node_data.get('prologue')
552552
dataset_list = self.list_dataset(with_valid=False)
553-
dataset_id_list = self.update_reverse_search_node(work_flow,
554-
[str(dataset.get('id')) for dataset in dataset_list])
555-
553+
application_dataset_id_list = [str(dataset.get('id')) for dataset in dataset_list]
554+
dataset_id_list = self.update_reverse_search_node(work_flow, application_dataset_id_list)
556555
application.work_flow = work_flow
557556
application.save()
558557
# 插入知识库关联关系
559-
self.save_application_mapping(dataset_id_list, application.id)
558+
self.save_application_mapping(application_dataset_id_list, dataset_id_list, application.id)
560559
work_flow_version = WorkFlowVersion(work_flow=work_flow, application=application)
561560
work_flow_version.save()
562561
return True
@@ -662,16 +661,16 @@ def edit(self, instance: Dict, with_valid=True):
662661
if not application_dataset_id_list.__contains__(dataset_id):
663662
raise AppApiException(500, f"未知的知识库id${dataset_id},无法关联")
664663

665-
self.save_application_mapping(application_dataset_id_list, application_id)
664+
self.save_application_mapping(application_dataset_id_list, dataset_id_list, application_id)
666665
chat_cache.clear_by_application_id(application_id)
667666
return self.one(with_valid=False)
668667

669668
@staticmethod
670-
def save_application_mapping(dataset_id_list, application_id):
669+
def save_application_mapping(application_dataset_id_list, dataset_id_list, application_id):
671670
# 需要排除已删除的数据集
672671
dataset_id_list = [dataset.id for dataset in QuerySet(DataSet).filter(id__in=dataset_id_list)]
673672
# 删除已经关联的id
674-
QuerySet(ApplicationDatasetMapping).filter(dataset_id__in=dataset_id_list,
673+
QuerySet(ApplicationDatasetMapping).filter(dataset_id__in=application_dataset_id_list,
675674
application_id=application_id).delete()
676675
# 插入
677676
QuerySet(ApplicationDatasetMapping).bulk_create(

0 commit comments

Comments
 (0)