From edde2891c355103ba455f3fea95cff962e40962c Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Sun, 12 Oct 2025 12:57:32 -0400 Subject: [PATCH] Fixed #36660 -- Fixed a regression in descending Index local field checks. Regression in 8638d8bf74c1a58302c97d4436ad2eb08438145b. Refs #36273. Thanks Federico Bond for the report. --- django/db/models/indexes.py | 7 ++++++- tests/invalid_models_tests/test_models.py | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/django/db/models/indexes.py b/django/db/models/indexes.py index 176f719fe5..a408506527 100644 --- a/django/db/models/indexes.py +++ b/django/db/models/indexes.py @@ -114,7 +114,12 @@ class Index: ) errors.extend( model._check_local_fields( - {*self.fields, *self.include, *references}, "indexes" + { + *[field for field, _ in self.fields_orders], + *self.include, + *references, + }, + "indexes", ) ) # Database-feature checks: diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py index faa0db9da7..5780704eae 100644 --- a/tests/invalid_models_tests/test_models.py +++ b/tests/invalid_models_tests/test_models.py @@ -185,6 +185,15 @@ class IndexesTests(TestCase): ], ) + def test_pointing_to_desc_field(self): + class Model(models.Model): + name = models.CharField(max_length=100) + + class Meta: + indexes = [models.Index(fields=["-name"], name="index_name")] + + self.assertEqual(Model.check(databases=self.databases), []) + def test_pointing_to_m2m_field(self): class Model(models.Model): m2m = models.ManyToManyField("self")