diff options
| author | David Sanders <shang.xiao.sanders@gmail.com> | 2022-09-18 01:44:37 +1000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-10-04 08:19:34 +0200 |
| commit | 4771a1694b3b54c7309602820881d3ec9cc2c809 (patch) | |
| tree | 68b16c5811caf7d67e1f3425bbedb6e81181ead1 /tests/ordering | |
| parent | 649b28eab6765cd6b2b40c779a18ecafc99b43d7 (diff) | |
Fixed #34012 -- Made QuerySet.order_by() apply transforms on related fields for models with Meta.ordering.
This makes QuerySet.order_by() no longer ignore trailing transforms for
models with Meta.ordering. As a consequence, FieldError is raised in
such cases for non-existent fields.
Thanks to Klaas van Schelven for the report and Mariusz Felisiak for the
review and advice.
Diffstat (limited to 'tests/ordering')
| -rw-r--r-- | tests/ordering/tests.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/ordering/tests.py b/tests/ordering/tests.py index e4f7d75992..8109ea1b45 100644 --- a/tests/ordering/tests.py +++ b/tests/ordering/tests.py @@ -1,6 +1,7 @@ from datetime import datetime from operator import attrgetter +from django.core.exceptions import FieldError from django.db.models import ( CharField, Count, @@ -91,6 +92,18 @@ class OrderingTests(TestCase): attrgetter("headline"), ) + def test_default_ordering_override_unknown_field(self): + """ + Attempts to override default ordering on related models with an unknown + field should result in an error. + """ + msg = ( + "Cannot resolve keyword 'unknown_field' into field. Choices are: " + "article, author, editor, editor_id, id, name" + ) + with self.assertRaisesMessage(FieldError, msg): + list(Article.objects.order_by("author__unknown_field")) + def test_order_by_override(self): """ Only the last order_by has any effect (since they each override any |
