(self)
| 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) |
no test coverage detected