Permalink
Browse files

Fixed #22792 -- Updated checks for list_display_links in model admin

  • Loading branch information...
1 parent 34f4fd7 commit d8f19bb3b6f858bef499fdab41948a5a5e8d55aa @gchp gchp committed with timgraham Jun 10, 2014
Showing with 29 additions and 2 deletions.
  1. +5 −2 django/contrib/admin/checks.py
  2. +24 −0 tests/modeladmin/tests.py
@@ -779,7 +779,7 @@ def _check_list_editable_item(self, cls, model, field_name, label):
obj=cls,
id='admin.E122',
),
- elif field_name in cls.list_display_links:
+ elif cls.list_display_links and field_name in cls.list_display_links:
return [
checks.Error(
"The value of '%s' cannot be in both 'list_editable' and 'list_display_links'." % field_name,
@@ -788,7 +788,10 @@ def _check_list_editable_item(self, cls, model, field_name, label):
id='admin.E123',
)
]
- elif not cls.list_display_links and cls.list_display[0] in cls.list_editable:
+ # Check that list_display_links is set, and that the first values of list_editable and list_display are
+ # not the same. See ticket #22792 for the use case relating to this.
+ elif (cls.list_display[0] in cls.list_editable and cls.list_display[0] != cls.list_editable[0] and
+ cls.list_display_links is not None):
return [
checks.Error(
"The value of '%s' refers to the first field in 'list_display' ('%s'), "
View
@@ -1518,3 +1518,27 @@ class CustomModelAdmin(ModelAdmin):
validator_class = CustomValidator
self.assertIsInvalid(CustomModelAdmin, ValidationTestModel, 'error!')
+
+
+class ListDisplayEditableTests(CheckTestCase):
+ def test_list_display_links_is_none(self):
+ """
+ list_display and list_editable can contain the same values
+ when list_display_links is None
+ """
+ class ProductAdmin(ModelAdmin):
+ list_display = ['name', 'slug', 'pub_date']
+ list_editable = list_display
+ list_display_links = None
+ self.assertIsValid(ProductAdmin, ValidationTestModel)
+
+ def test_list_display_same_as_list_editable(self):
+ """
+ The first item in list_display can be the same as the first
+ in list_editable
+ """
+ class ProductAdmin(ModelAdmin):
+ list_display = ['name', 'slug', 'pub_date']
+ list_editable = ['name', 'slug']
+ list_display_links = ['pub_date']
+ self.assertIsValid(ProductAdmin, ValidationTestModel)

0 comments on commit d8f19bb

Please sign in to comment.