1 | diff --git a/django/contrib/auth/checks.py b/django/contrib/auth/checks.py |
---|
2 | index e7b5815..9f02304 100644 |
---|
3 | --- a/django/contrib/auth/checks.py |
---|
4 | +++ b/django/contrib/auth/checks.py |
---|
5 | @@ -111,7 +111,10 @@ def check_models_permissions(app_configs=None, **kwargs): |
---|
6 | opts = model._meta |
---|
7 | builtin_permissions = dict(_get_builtin_permissions(opts)) |
---|
8 | # Check builtin permission name length. |
---|
9 | - max_builtin_permission_name_length = max(len(name) for name in builtin_permissions.values()) |
---|
10 | + if builtin_permissions: |
---|
11 | + max_builtin_permission_name_length = max(len(name) for name in builtin_permissions.values()) |
---|
12 | + else: |
---|
13 | + max_builtin_permission_name_length = 0 |
---|
14 | if max_builtin_permission_name_length > permission_name_max_length: |
---|
15 | verbose_name_max_length = ( |
---|
16 | permission_name_max_length - (max_builtin_permission_name_length - len(opts.verbose_name_raw)) |
---|
17 | diff --git a/tests/auth_tests/test_checks.py b/tests/auth_tests/test_checks.py |
---|
18 | index 962444f..9855870 100644 |
---|
19 | --- a/tests/auth_tests/test_checks.py |
---|
20 | +++ b/tests/auth_tests/test_checks.py |
---|
21 | @@ -195,3 +195,12 @@ class ModelsPermissionsChecksTests(SimpleTestCase): |
---|
22 | id='auth.E008', |
---|
23 | ), |
---|
24 | ]) |
---|
25 | + |
---|
26 | + def test_empty_permission_name_max_length(self): |
---|
27 | + """should not fail on empty permissions""" |
---|
28 | + class Checked(models.Model): |
---|
29 | + class Meta: |
---|
30 | + permissions = () |
---|
31 | + default_permissions = () |
---|
32 | + errors = checks.run_checks(self.apps.get_app_configs()) |
---|
33 | + self.assertEqual(errors, []) |
---|