summaryrefslogtreecommitdiff
path: root/django/contrib/admin/checks.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/contrib/admin/checks.py')
-rw-r--r--django/contrib/admin/checks.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/django/contrib/admin/checks.py b/django/contrib/admin/checks.py
index d129acb124..4007a781fb 100644
--- a/django/contrib/admin/checks.py
+++ b/django/contrib/admin/checks.py
@@ -606,6 +606,7 @@ class ModelAdminChecks(BaseModelAdminChecks):
*self._check_search_fields(admin_obj),
*self._check_date_hierarchy(admin_obj),
*self._check_action_permission_methods(admin_obj),
+ *self._check_actions_uniqueness(admin_obj),
]
def _check_save_as(self, obj):
@@ -944,6 +945,18 @@ class ModelAdminChecks(BaseModelAdminChecks):
)
return errors
+ def _check_actions_uniqueness(self, obj):
+ """Check that every action has a unique __name__."""
+ names = [name for _, name, _ in obj._get_base_actions()]
+ if len(names) != len(set(names)):
+ return [checks.Error(
+ '__name__ attributes of actions defined in %s must be '
+ 'unique.' % obj.__class__,
+ obj=obj.__class__,
+ id='admin.E130',
+ )]
+ return []
+
class InlineModelAdminChecks(BaseModelAdminChecks):