From 04042b2b440f0bf50eb908d52cfe76af430e1738 Mon Sep 17 00:00:00 2001 From: ruchit2801 Date: Fri, 17 May 2019 13:00:57 +0530 Subject: Fixed #30463 -- Fixed crash of deprecation message when Meta.ordering contains expressions. Regression in 1b1f64ee5a78cc217fead52cbae23114502cf564. --- tests/ordering/models.py | 8 +++++++- tests/ordering/tests.py | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/ordering/models.py b/tests/ordering/models.py index 85e8c59bb6..8b71983c44 100644 --- a/tests/ordering/models.py +++ b/tests/ordering/models.py @@ -14,6 +14,7 @@ undefined -- not random, just undefined. """ from django.db import models +from django.db.models.expressions import OrderBy class Author(models.Model): @@ -30,7 +31,12 @@ class Article(models.Model): pub_date = models.DateTimeField() class Meta: - ordering = ('-pub_date', 'headline') + ordering = ( + '-pub_date', + 'headline', + models.F('author__name').asc(), + OrderBy(models.F('second_author__name')), + ) def __str__(self): return self.headline diff --git a/tests/ordering/tests.py b/tests/ordering/tests.py index 16e5cc9b2d..f0c4bba999 100644 --- a/tests/ordering/tests.py +++ b/tests/ordering/tests.py @@ -408,7 +408,9 @@ class OrderingTests(TestCase): def test_deprecated_values_annotate(self): msg = ( "Article QuerySet won't use Meta.ordering in Django 3.1. Add " - ".order_by('-pub_date', 'headline') to retain the current query." + ".order_by('-pub_date', 'headline', OrderBy(F(author__name), " + "descending=False), OrderBy(F(second_author__name), " + "descending=False)) to retain the current query." ) with self.assertRaisesMessage(RemovedInDjango31Warning, msg): list(Article.objects.values('author').annotate(Count('headline'))) -- cgit v1.3