diff options
| author | Przemysław Buczkowski <przemub@creditdigital.co.uk> | 2018-09-13 13:36:14 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-10-02 09:17:23 -0400 |
| commit | 70d0a1ca02f42c0f8984b6234ca0f9d7e354a135 (patch) | |
| tree | 11a9e6d5c92e55124567da316204f977bd3ef0ca /django | |
| parent | 7598cd4748dc402b0209e5eedb6d2a83c3da1620 (diff) | |
Fixed #29711 -- Added a system check for uniquness of admin actions' __name__.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/checks.py | 13 |
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): |
