From 31d0f2fa29b766d4e739e8ad650b43435b48dfbf Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Mon, 21 Feb 2011 21:20:41 +0000 Subject: [1.2.X] Fixed #11058 - list_display_links doesn't allow callables not defined in the model Thanks to dvine for the report and julien for the patch. Backport of [15619] from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15621 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/modeladmin/tests.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'tests/regressiontests/modeladmin/tests.py') diff --git a/tests/regressiontests/modeladmin/tests.py b/tests/regressiontests/modeladmin/tests.py index b13a0ec952..5f975f46d7 100644 --- a/tests/regressiontests/modeladmin/tests.py +++ b/tests/regressiontests/modeladmin/tests.py @@ -778,8 +778,13 @@ class ValidationTests(unittest.TestCase): ValidationTestModel, ) + def a_callable(obj): + pass + class ValidationTestModelAdmin(ModelAdmin): - list_display = ('name',) + def a_method(self, obj): + pass + list_display = ('name', 'decade_published_in', 'a_method', a_callable) validate(ValidationTestModelAdmin, ValidationTestModel) @@ -801,7 +806,7 @@ class ValidationTests(unittest.TestCase): self.assertRaisesErrorWithMessage( ImproperlyConfigured, - "'ValidationTestModelAdmin.list_display_links[0]' refers to 'non_existent_field' that is neither a field, method or property of model 'ValidationTestModel'.", + "'ValidationTestModelAdmin.list_display_links[0]' refers to 'non_existent_field' which is not defined in 'list_display'.", validate, ValidationTestModelAdmin, ValidationTestModel, @@ -812,15 +817,22 @@ class ValidationTests(unittest.TestCase): self.assertRaisesErrorWithMessage( ImproperlyConfigured, - "'ValidationTestModelAdmin.list_display_links[0]'refers to 'name' which is not defined in 'list_display'.", + "'ValidationTestModelAdmin.list_display_links[0]' refers to 'name' which is not defined in 'list_display'.", validate, ValidationTestModelAdmin, ValidationTestModel, ) + def a_callable(obj): + pass + class ValidationTestModelAdmin(ModelAdmin): list_display = ('name',) list_display_links = ('name',) + def a_method(self, obj): + pass + list_display = ('name', 'decade_published_in', 'a_method', a_callable) + list_display_links = ('name', 'decade_published_in', 'a_method', a_callable) validate(ValidationTestModelAdmin, ValidationTestModel) -- cgit v1.3