summaryrefslogtreecommitdiff
path: root/django/db/models/sql/query.py
diff options
context:
space:
mode:
authorJacob Walls <jacobtylerwalls@gmail.com>2025-05-14 22:49:52 -0400
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-05-16 08:21:18 +0200
commit6228a35095d06fecf55bc1a3308ab4d46cc2d57b (patch)
treed67b07b625f8a2c7484011c5b68eb9ad1ee948e8 /django/db/models/sql/query.py
parent954e24758c7603ff63f7b4e8308c669bfa4e256f (diff)
[5.2.x] Fixed #36392 -- Raised ValueError when subquery referencing composite pk selects too many columns.
Backport of 994dc6d8a1bae717baa236b65e11cf91ce181c53 from main.
Diffstat (limited to 'django/db/models/sql/query.py')
-rw-r--r--django/db/models/sql/query.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 4d31c36175..92a09c5840 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1227,7 +1227,10 @@ class Query(BaseExpression):
@property
def _subquery_fields_len(self):
if self.has_select_fields:
- return len(self.selected)
+ return sum(
+ len(self.model._meta.pk_fields) if field == "pk" else 1
+ for field in self.selected
+ )
return len(self.model._meta.pk_fields)
def resolve_expression(self, query, *args, **kwargs):