From bdba4bc34cbbdabf200722125ade5d488e5b829e Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 2 Jul 2025 10:38:23 +0800 Subject: [PATCH] refactor: improve knowledge editing logic to prevent name duplication MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1057801 --user=刘瑞斌 【知识库】不同文件夹下创建相同名称的知识库成功,当切换知识库向量模型时会提示知识库名称重复 https://www.tapd.cn/62980211/s/1721429 --- apps/knowledge/serializers/knowledge.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/knowledge/serializers/knowledge.py b/apps/knowledge/serializers/knowledge.py index 8d0501ecb..a35adbfa3 100644 --- a/apps/knowledge/serializers/knowledge.py +++ b/apps/knowledge/serializers/knowledge.py @@ -325,13 +325,13 @@ class KnowledgeSerializer(serializers.Serializer): @transaction.atomic def edit(self, instance: Dict): self.is_valid() - if QuerySet(Knowledge).filter( - workspace_id=self.data.get('workspace_id'), - name=instance.get('name'), - folder_id=instance.get('folder_id', self.data.get('workspace_id')) - ).exclude(id=self.data.get('knowledge_id')).exists(): - raise AppApiException(500, _('Knowledge base name duplicate!')) knowledge = QuerySet(Knowledge).get(id=self.data.get("knowledge_id")) + if QuerySet(Knowledge).filter( + workspace_id=knowledge.workspace_id, + name=instance.get('name'), + folder_id=knowledge.folder_id + ).exclude(id=knowledge.id).exists(): + raise AppApiException(500, _('Knowledge base name duplicate!')) KnowledgeEditRequest(data=instance).is_valid(knowledge=knowledge) if 'embedding_model_id' in instance: knowledge.embedding_model_id = instance.get('embedding_model_id')