diff --git a/apps/knowledge/serializers/document.py b/apps/knowledge/serializers/document.py index 5218eedac..3b5be642e 100644 --- a/apps/knowledge/serializers/document.py +++ b/apps/knowledge/serializers/document.py @@ -665,6 +665,9 @@ class DocumentSerializers(serializers.Serializer): def delete(self): document_id = self.data.get("document_id") QuerySet(model=Document).filter(id=document_id).delete() + source_file_ids = [doc['meta'].get('source_file_id') for doc in + Document.objects.filter(id__=document_id).values("meta")] + QuerySet(File).filter(id__in=source_file_ids).delete() # 删除段落 QuerySet(model=Paragraph).filter(document_id=document_id).delete() # 删除问题 @@ -1189,6 +1192,9 @@ class DocumentSerializers(serializers.Serializer): BatchSerializer(data=instance).is_valid(model=Document, raise_exception=True) self.is_valid(raise_exception=True) document_id_list = instance.get("id_list") + source_file_ids = [doc['meta'].get('source_file_id') for doc in + Document.objects.filter(id__in=document_id_list).values("meta")] + QuerySet(File).filter(id__in=source_file_ids).delete() QuerySet(Document).filter(id__in=document_id_list).delete() QuerySet(Paragraph).filter(document_id__in=document_id_list).delete() delete_problems_and_mappings(document_id_list) diff --git a/apps/knowledge/serializers/knowledge.py b/apps/knowledge/serializers/knowledge.py index 674af096e..3adb01d89 100644 --- a/apps/knowledge/serializers/knowledge.py +++ b/apps/knowledge/serializers/knowledge.py @@ -29,7 +29,7 @@ from common.utils.fork import Fork, ChildLink from common.utils.logger import maxkb_logger from common.utils.split_model import get_split_model from knowledge.models import Knowledge, KnowledgeScope, KnowledgeType, Document, Paragraph, Problem, \ - ProblemParagraphMapping, TaskType, State, SearchMode, KnowledgeFolder + ProblemParagraphMapping, TaskType, State, SearchMode, KnowledgeFolder, File from knowledge.serializers.common import ProblemParagraphManage, get_embedding_model_id_by_knowledge_id, MetaSerializer, \ GenerateRelatedSerializer, get_embedding_model_by_knowledge_id, list_paragraph, write_image, zip_dir from knowledge.serializers.document import DocumentSerializers @@ -417,6 +417,9 @@ class KnowledgeSerializer(serializers.Serializer): QuerySet(WorkspaceUserResourcePermission).filter(target=knowledge.id).delete() QuerySet(ApplicationKnowledgeMapping).filter(knowledge_id=knowledge.id).delete() knowledge.delete() + File.objects.filter( + source_id=knowledge.id, + ).delete() delete_embedding_by_knowledge(self.data.get('knowledge_id')) return True