diff options
| author | Tim Graham <timograham@gmail.com> | 2013-10-16 11:29:29 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-10-16 11:31:07 -0400 |
| commit | 91c77eeab837ff793311ac5b0321015a4e66d6da (patch) | |
| tree | 46b55fa5fb0b85545f4fd67f2ab3d6be39b50dcc | |
| parent | 3918eeb9fde03a2ad1941bce022615fff8eae34d (diff) | |
Avoided hardcoding Permission.name max_length
refs #18866.
| -rw-r--r-- | django/contrib/auth/management/__init__.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/django/contrib/auth/management/__init__.py b/django/contrib/auth/management/__init__.py index dafcda243a..8fd08ac57c 100644 --- a/django/contrib/auth/management/__init__.py +++ b/django/contrib/auth/management/__init__.py @@ -101,10 +101,16 @@ def create_permissions(app, created_models, verbosity, db=DEFAULT_DB_ALIAS, **kw ] # Validate the permissions before bulk_creation to avoid cryptic # database error when the verbose_name is longer than 50 characters + permission_name_max_length = auth_app.Permission._meta.get_field('name').max_length + verbose_name_max_length = permission_name_max_length - 11 # len('Can change ') prefix for perm in perms: - if len(perm.name) > 50: + if len(perm.name) > permission_name_max_length: raise exceptions.ValidationError( - "The verbose_name of %s is longer than 39 characters" % perm.content_type) + "The verbose_name of %s is longer than %s characters" % ( + perm.content_type, + verbose_name_max_length, + ) + ) auth_app.Permission.objects.using(db).bulk_create(perms) if verbosity >= 2: for perm in perms: |
