1
0
mirror of https://github.com/django/django.git synced 2025-10-26 07:06:08 +00:00

Fixed #36288 -- Addressed improper handling of duplicates in values_list().

Now that selected aliases are stored in sql.Query.selected: dict[str, Any]
the values_list() method must ensures that duplicate field name references are
assigned unique aliases.

Refs #28900.

Regression in 65ad4ade74.

Thanks Claude for the report.
This commit is contained in:
Simon Charette
2025-04-02 18:53:36 -04:00
committed by Sarah Boyce
parent 2d1ac1dce8
commit 21f8be76d4
4 changed files with 35 additions and 16 deletions

View File

@@ -128,18 +128,18 @@ class CompositePKValuesTests(TestCase):
self.assertSequenceEqual(
User.objects.values_list("pk", "pk").order_by("pk"),
(
(self.user_1.pk,),
(self.user_2.pk,),
(self.user_3.pk,),
(self.user_1.pk, self.user_1.pk),
(self.user_2.pk, self.user_2.pk),
(self.user_3.pk, self.user_3.pk),
),
)
with self.subTest('User.objects.values_list("pk", "id", "pk", "id")'):
self.assertSequenceEqual(
User.objects.values_list("pk", "id", "pk", "id").order_by("pk"),
(
(self.user_1.pk, self.user_1.id),
(self.user_2.pk, self.user_2.id),
(self.user_3.pk, self.user_3.id),
(self.user_1.pk, self.user_1.id, self.user_1.pk, self.user_1.id),
(self.user_2.pk, self.user_2.id, self.user_2.pk, self.user_2.id),
(self.user_3.pk, self.user_3.id, self.user_3.pk, self.user_3.id),
),
)