MCPcopy
hub / github.com/django/django / get_prep_lookup

Method get_prep_lookup

django/db/models/lookups.py:498–512  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

496 lookup_name = "in"
497
498 def get_prep_lookup(self):
499 from django.db.models.sql.query import Query # avoid circular import
500
501 if isinstance(self.rhs, Query):
502 lhs_len = len(self.lhs) if isinstance(self.lhs, (ColPairs, tuple)) else 1
503 if (rhs_len := self.rhs._subquery_fields_len) != lhs_len:
504 raise ValueError(
505 f"The QuerySet value for the 'in' lookup must have {lhs_len} "
506 f"selected fields (received {rhs_len})"
507 )
508 self.rhs.clear_ordering(clear_default=True)
509 if not self.rhs.has_select_fields:
510 self.rhs.clear_select_clause()
511 self.rhs.add_fields(["pk"])
512 return super().get_prep_lookup()
513
514 def process_rhs(self, compiler, connection):
515 db_rhs = getattr(self.rhs, "_db", None)

Callers 2

get_prep_lookupMethod · 0.45
get_prep_lookupMethod · 0.45

Calls 3

clear_orderingMethod · 0.80
clear_select_clauseMethod · 0.80
add_fieldsMethod · 0.45

Tested by

no test coverage detected