Update: 50 char limit is now 255 in Django 1.8
-
Original answer:
I just ran into this this afternoon, and I have a fix.
This post here implied a Django error related to the length of the value allowed for auth_permission. Further copying supports this idea, as does this Django ticket (although it was originally associated with MySQL).
Basically, the permission name is created based on the verbose_name model plus a descriptive permission string and can overflow up to more than 50 characters allowed in auth.models.Permission.name.
To quote a comment on a Django ticket:
The longest prefixes for the string value in the auth_permission.name column are "Can change" and "Can delete", both with 11 characters. The maximum column length is 50, so the maximum length of Met.verbose_name is 39.
One solution would be to hack this column so that it supports> 50 characters (ideally, through southern migration, I say to make it easy to reproduce), but the fastest and most reliable fix I could think of, the long verbose_name definition is much shorter (from 47 characters in verbose_name to about 20). Everything works perfectly.
Steve Jalim Sep 27 '10 at 17:13 2010-09-27 17:13
source share