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 @@ -410,7 +410,21 @@ class self.model, but as a class derived from self.model. We want to re-fetch
410410 ** {("%s__in" % pk_name ): idlist }
411411 )
412412 # copy select related configuration to new qs
413- real_objects .query .select_related = self .query .select_related
413+
414+ if self .query .select_related is False :
415+ real_objects .query .select_related = False
416+ else :
417+ concrete_model_name = real_concrete_class ._meta .model_name
418+ sub_model_names = set ([m ._meta .model_name for m in self .model .__subclasses__ ()])
419+ sub_model_names .remove (concrete_model_name )
420+
421+ for sub_name in sub_model_names :
422+ self .query .select_related .pop (sub_name , None )
423+
424+ if concrete_model_name in self .query .select_related :
425+ real_objects .query .select_related = self .query .select_related [concrete_model_name ]
426+ else :
427+ real_objects .query .select_related = self .query .select_related
414428
415429 # Copy deferred fields configuration to the new queryset
416430 deferred_loading_fields = []
You can’t perform that action at this time.
0 commit comments