diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2017-12-27 18:38:30 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2017-12-27 18:46:05 +0100 |
| commit | b54302d2269e54cfc2a9594b1f3e652e1fd089ed (patch) | |
| tree | 834ac5b029640c3daee54af49a64b889fd3f706f /tests | |
| parent | 1b27374b0de49dd6afff80b730774bccc9551cc3 (diff) | |
[2.0.x] Fixed #28958 -- Fixed admin changelist crash when using a query expression in the page's ordering.
Thanks Tim Graham for the review.
Backport of c8152137400b5932578cd1788b79560c9772e56b from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_changelist/tests.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py index b4c08b3e84..e884a8671d 100644 --- a/tests/admin_changelist/tests.py +++ b/tests/admin_changelist/tests.py @@ -8,6 +8,8 @@ from django.contrib.admin.tests import AdminSeleniumTestCase from django.contrib.admin.views.main import ALL_VAR, SEARCH_VAR from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType +from django.db.models import F +from django.db.models.functions import Upper from django.template import Context, Template from django.test import TestCase, override_settings from django.test.client import RequestFactory @@ -55,6 +57,20 @@ class ChangeListTests(TestCase): request.user = user return request + def test_specified_ordering_by_f_expression(self): + class OrderedByFBandAdmin(admin.ModelAdmin): + list_display = ['name', 'genres', 'nr_of_members'] + ordering = ( + F('nr_of_members').desc(nulls_last=True), + Upper(F('name')).asc(), + F('genres').asc(), + ) + + m = OrderedByFBandAdmin(Band, custom_site) + request = self.factory.get('/band/') + cl = m.get_changelist_instance(request) + self.assertEqual(cl.get_ordering_field_columns(), {3: 'desc', 2: 'asc'}) + def test_select_related_preserved(self): """ Regression test for #10348: ChangeList.get_queryset() shouldn't |
