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")