refactor: improve knowledge editing logic to prevent name duplication
--bug=1057801 --user=刘瑞斌 【知识库】不同文件夹下创建相同名称的知识库成功,当切换知识库向量模型时会提示知识库名称重复 https://www.tapd.cn/62980211/s/1721429
This commit is contained in:
parent
de68eef276
commit
bdba4bc34c
@ -325,13 +325,13 @@ class KnowledgeSerializer(serializers.Serializer):
|
|||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def edit(self, instance: Dict):
|
def edit(self, instance: Dict):
|
||||||
self.is_valid()
|
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"))
|
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)
|
KnowledgeEditRequest(data=instance).is_valid(knowledge=knowledge)
|
||||||
if 'embedding_model_id' in instance:
|
if 'embedding_model_id' in instance:
|
||||||
knowledge.embedding_model_id = instance.get('embedding_model_id')
|
knowledge.embedding_model_id = instance.get('embedding_model_id')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user