summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2009-05-14 15:13:49 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2009-05-14 15:13:49 +0000
commit7f90dc1ba235e0050e6b73fff4f61ded3b297ccf (patch)
treee851629064884b47b49ab0dca07d74cf62e52207 /tests
parentc293450173ae805d73997d360a2ab5a8357ba4f8 (diff)
[1.0.X] Fixed #10348: ChangeList no longer overwrites a select_related provided by `ModelAdmin.queryset()`. Backport of [10782] from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10783 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/admin_changelist/__init__.py0
-rw-r--r--tests/regressiontests/admin_changelist/models.py9
-rw-r--r--tests/regressiontests/admin_changelist/tests.py24
3 files changed, 33 insertions, 0 deletions
diff --git a/tests/regressiontests/admin_changelist/__init__.py b/tests/regressiontests/admin_changelist/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/regressiontests/admin_changelist/__init__.py
diff --git a/tests/regressiontests/admin_changelist/models.py b/tests/regressiontests/admin_changelist/models.py
new file mode 100644
index 0000000000..f030a781e9
--- /dev/null
+++ b/tests/regressiontests/admin_changelist/models.py
@@ -0,0 +1,9 @@
+from django.db import models
+from django.contrib import admin
+
+class Parent(models.Model):
+ name = models.CharField(max_length=128)
+
+class Child(models.Model):
+ parent = models.ForeignKey(Parent, editable=False)
+ name = models.CharField(max_length=30, blank=True) \ No newline at end of file
diff --git a/tests/regressiontests/admin_changelist/tests.py b/tests/regressiontests/admin_changelist/tests.py
new file mode 100644
index 0000000000..1e3cd17fc6
--- /dev/null
+++ b/tests/regressiontests/admin_changelist/tests.py
@@ -0,0 +1,24 @@
+import unittest
+from django.contrib import admin
+from django.contrib.admin.views.main import ChangeList
+from regressiontests.admin_changelist.models import Child
+
+class ChangeListTests(unittest.TestCase):
+ def test_select_related_preserved(self):
+ """
+ Regression test for #10348: ChangeList.get_query_set() shouldn't
+ overwrite a custom select_related provided by ModelAdmin.queryset().
+ """
+ m = ChildAdmin(Child, admin.site)
+ cl = ChangeList(MockRequest(), Child, m.list_display, m.list_display_links,
+ m.list_filter,m.date_hierarchy, m.search_fields,
+ m.list_select_related, m.list_per_page, m)
+ self.assertEqual(cl.query_set.query.select_related, {'parent': {'name': {}}})
+
+class ChildAdmin(admin.ModelAdmin):
+ list_display = ['name', 'parent']
+ def queryset(self, request):
+ return super(ChildAdmin, self).queryset(request).select_related("parent__name")
+
+class MockRequest(object):
+ GET = {}