@@ -500,16 +500,18 @@ def edit(self, instance: Dict, select_one=True):
500500 def delete (self ):
501501 self .is_valid ()
502502 knowledge = QuerySet (Knowledge ).get (id = self .data .get ("knowledge_id" ))
503- QuerySet (Document ).filter (knowledge = knowledge ). delete ( )
503+ document_query_set = QuerySet (Document ).filter (knowledge = knowledge )
504504 QuerySet (ProblemParagraphMapping ).filter (knowledge = knowledge ).delete ()
505505 QuerySet (Paragraph ).filter (knowledge = knowledge ).delete ()
506506 QuerySet (Problem ).filter (knowledge = knowledge ).delete ()
507507 QuerySet (WorkspaceUserResourcePermission ).filter (target = knowledge .id ).delete ()
508508 drop_knowledge_index (knowledge_id = knowledge .id )
509509 knowledge .delete ()
510- File .objects .filter (
511- source_id = knowledge .id ,
510+ QuerySet (File ).filter (source_id = self .data .get ("knowledge_id" )).delete ()
511+ QuerySet (File ).filter (
512+ source_id__in = [str (i ) for i in document_query_set .values_list ("id" , flat = True )]
512513 ).delete ()
514+ document_query_set .delete ()
513515 QuerySet (ResourceMapping ).filter (
514516 Q (target_id = self .data .get ("knowledge_id" )) | Q (source_id = self .data .get ("knowledge_id" ))
515517 ).delete ()
@@ -1568,7 +1570,7 @@ def batch_delete(self, instance: Dict, with_valid=True):
15681570 knowledge_query_set = QuerySet (Knowledge ).filter (id__in = id_list , workspace_id = workspace_id )
15691571
15701572 # 删除所有关联
1571- QuerySet (Document ).filter (knowledge__in = knowledge_query_set ). delete ( )
1573+ document_query_set = QuerySet (Document ).filter (knowledge__in = knowledge_query_set )
15721574 QuerySet (ProblemParagraphMapping ).filter (knowledge__in = knowledge_query_set ).delete ()
15731575 QuerySet (Paragraph ).filter (knowledge__in = knowledge_query_set ).delete ()
15741576 QuerySet (Problem ).filter (knowledge__in = knowledge_query_set ).delete ()
@@ -1578,7 +1580,9 @@ def batch_delete(self, instance: Dict, with_valid=True):
15781580 drop_knowledge_index (knowledge_id = k_id )
15791581 delete_embedding_by_knowledge (k_id )
15801582
1581- File .objects .filter (source_id__in = id_list ).delete ()
1583+ QuerySet (File ).filter (source_id__in = id_list ).delete ()
1584+ QuerySet (File ).filter (source_id__in = [str (i ) for i in document_query_set .values_list ("id" , flat = True )]).delete ()
1585+ document_query_set .delete ()
15821586 QuerySet (ResourceMapping ).filter (Q (target_id__in = id_list ) | Q (source_id__in = id_list )).delete ()
15831587
15841588 knowledge_query_set .delete ()
0 commit comments