summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2013-10-16 11:29:29 -0400
committerTim Graham <timograham@gmail.com>2013-10-16 11:31:07 -0400
commit91c77eeab837ff793311ac5b0321015a4e66d6da (patch)
tree46b55fa5fb0b85545f4fd67f2ab3d6be39b50dcc
parent3918eeb9fde03a2ad1941bce022615fff8eae34d (diff)
Avoided hardcoding Permission.name max_length
refs #18866.
-rw-r--r--django/contrib/auth/management/__init__.py10
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: