summaryrefslogtreecommitdiff
path: root/tests/ordering
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2022-09-18 01:44:37 +1000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-10-04 08:19:34 +0200
commit4771a1694b3b54c7309602820881d3ec9cc2c809 (patch)
tree68b16c5811caf7d67e1f3425bbedb6e81181ead1 /tests/ordering
parent649b28eab6765cd6b2b40c779a18ecafc99b43d7 (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.py13
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