summaryrefslogtreecommitdiff
path: root/tests/admin_changelist
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-04-26 12:07:16 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-04-27 10:34:47 +0200
commit158eca4f93e492a6cc6f0240a0b6da3b7aa98ee6 (patch)
tree2423d035377aa1574437642ab5a138ac9a9cf1d5 /tests/admin_changelist
parentd68be0494be8b82365f2a5410c9335e539d8efd6 (diff)
downloaddjango-158eca4f93e492a6cc6f0240a0b6da3b7aa98ee6.tar.gz
Refs #19080 -- Added tests for preserving select_related() in the admin changelist.
Diffstat (limited to 'tests/admin_changelist')
-rw-r--r--tests/admin_changelist/admin.py1
-rw-r--r--tests/admin_changelist/tests.py14
2 files changed, 15 insertions, 0 deletions
diff --git a/tests/admin_changelist/admin.py b/tests/admin_changelist/admin.py
index 4f23296eca..0397e8557a 100644
--- a/tests/admin_changelist/admin.py
+++ b/tests/admin_changelist/admin.py
@@ -33,6 +33,7 @@ site.register(Event, EventAdmin)
class ParentAdmin(admin.ModelAdmin):
list_filter = ['child__name']
search_fields = ['child__name']
+ list_select_related = ['child']
class ChildAdmin(admin.ModelAdmin):
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py
index 8da1c2f799..dc1b987a1e 100644
--- a/tests/admin_changelist/tests.py
+++ b/tests/admin_changelist/tests.py
@@ -104,6 +104,20 @@ class ChangeListTests(TestCase):
cl = m.get_changelist_instance(request)
self.assertEqual(cl.queryset.query.select_related, {'parent': {}})
+ def test_select_related_preserved_when_multi_valued_in_search_fields(self):
+ parent = Parent.objects.create(name='Mary')
+ Child.objects.create(parent=parent, name='Danielle')
+ Child.objects.create(parent=parent, name='Daniel')
+
+ m = ParentAdmin(Parent, custom_site)
+ request = self.factory.get('/parent/', data={SEARCH_VAR: 'daniel'})
+ request.user = self.superuser
+
+ cl = m.get_changelist_instance(request)
+ self.assertEqual(cl.queryset.count(), 1)
+ # select_related is preserved.
+ self.assertEqual(cl.queryset.query.select_related, {'child': {}})
+
def test_select_related_as_tuple(self):
ia = InvitationAdmin(Invitation, custom_site)
request = self.factory.get('/invitation/')