File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -403,7 +403,21 @@ class self.model, but as a class derived from self.model. We want to re-fetch
403403 ** {(f"{ pk_name } __in" ): idlist }
404404 )
405405 # copy select related configuration to new qs
406- real_objects .query .select_related = self .query .select_related
406+
407+ if self .query .select_related is False :
408+ real_objects .query .select_related = False
409+ else :
410+ concrete_model_name = real_concrete_class ._meta .model_name
411+ sub_model_names = set ([m ._meta .model_name for m in self .model .__subclasses__ ()])
412+ sub_model_names .remove (concrete_model_name )
413+
414+ for sub_name in sub_model_names :
415+ self .query .select_related .pop (sub_name , None )
416+
417+ if concrete_model_name in self .query .select_related :
418+ real_objects .query .select_related = self .query .select_related [concrete_model_name ]
419+ else :
420+ real_objects .query .select_related = self .query .select_related
407421
408422 # Copy deferred fields configuration to the new queryset
409423 deferred_loading_fields = []
You can’t perform that action at this time.
0 commit comments