diff options
| author | Simon Charette <charette.s@gmail.com> | 2025-10-12 12:57:32 -0400 |
|---|---|---|
| committer | Natalia <124304+nessita@users.noreply.github.com> | 2025-10-13 10:51:22 -0300 |
| commit | 86e7406cfb839a6c5384e9f72a55ef78eccc9a3c (patch) | |
| tree | 400730989290f50872ecbeb6004c18902f46a7b1 | |
| parent | c4309f46270432c6d48dfc8b6bf2de20a01d0d6b (diff) | |
[6.0.x] Fixed #36660 -- Fixed a regression in descending Index local field checks.
Regression in 8638d8bf74c1a58302c97d4436ad2eb08438145b.
Refs #36273.
Thanks Federico Bond for the report.
Backport of edde2891c355103ba455f3fea95cff962e40962c from main.
| -rw-r--r-- | django/db/models/indexes.py | 7 | ||||
| -rw-r--r-- | tests/invalid_models_tests/test_models.py | 9 |
2 files changed, 15 insertions, 1 deletions
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") |
