@@ -1429,40 +1429,38 @@ def __init__(
14291429 def _make_query (self ) -> None :
14301430 self .query = copy (self .model ._meta .basequery )
14311431 self .resolve_filters ()
1432-
1432+
14331433 # If joins are detected, rewrite into an IN subquery to avoid JOINs in DELETE
14341434 if self ._joined_tables :
14351435 pk_column = self .model ._meta .db_pk_column
1436-
1436+
14371437 # Create a pristine, completely separate SELECT query builder
14381438 subquery = self ._db .query_class .from_ (self .model ._meta .basetable ).select (
14391439 self .model ._meta .basetable [pk_column ]
14401440 )
1441-
1441+
14421442 # Transfer the resolved wheres and havings criteria from our filter resolution
14431443 subquery ._wheres = self .query ._wheres
14441444 subquery ._havings = self .query ._havings
1445-
1445+
14461446 # Apply joins directly to the subquery builder
14471447 subquery ._joins = self .query ._joins
1448-
1448+
14491449 # Re-apply limits and sorting to the subquery if needed
14501450 if self ._limit :
14511451 subquery ._limit = subquery ._wrapper_cls (self ._limit )
1452-
1452+
14531453 self .resolve_ordering (
14541454 model = self .model ,
14551455 table = self .model ._meta .basetable ,
14561456 orderings = self ._orderings ,
14571457 annotations = self ._annotations ,
14581458 )
14591459 subquery ._orderbys = self .query ._orderbys
1460-
1460+
14611461 # Reconstruct clean pristine delete statement pointing to our subquery
14621462 self .query = copy (self .model ._meta .basequery )
1463- self .query = self .query .where (
1464- self .model ._meta .basetable [pk_column ].isin (subquery )
1465- )
1463+ self .query = self .query .where (self .model ._meta .basetable [pk_column ].isin (subquery ))
14661464 else :
14671465 # Traditional optimization path if no backward relations/joins exist
14681466 if self .capabilities .support_update_limit_order_by and self ._limit :
@@ -1476,7 +1474,7 @@ def _make_query(self) -> None:
14761474
14771475 self .query ._delete_from = True
14781476 return
1479-
1477+
14801478 def __await__ (self ) -> Generator [Any , None , int ]:
14811479 self ._choose_db_if_not_chosen (True )
14821480 self ._make_query ()
0 commit comments