Обновление: ограничение в 50 символов теперь составляет 255 в Django 1.8
-
Оригинальный ответ:
Я только что столкнулся с этим днемИ у меня тоже есть исправление (вроде)
Этот пост здесь подразумевает, что это ошибка Django, связанная с длиной значения, разрешенного для auth_permission.Дальнейшее копирование подтверждает эту идею, как и этот билет Django (хотя изначально он связан с MySQL).
По сути, имя разрешения создается на основе verbose_name модели плюс описательная строка разрешения, и оно может переполняться до более чем 50 символов, разрешенных в auth.models.Permission.name.
Чтобы процитировать комментарий к билету Django:
Самые длинные префиксы для строкового значения в столбце auth_permission.name - «Можно изменить» и «Можно удалить», оба из 11 символов.Максимальная длина столбца равна 50, поэтому максимальная длина Meta.verbose_name равна 39.
Одним из решений было бы взломать этот столбец, чтобы он поддерживал> 50 символов (в идеале с помощью миграции на юг, скажем так,это легко повторяется) но самое быстрое, самое надежное исправление, которое я мог придумать, состояло в том, чтобы просто сделать мое длинное определение verbose_name намного короче (от 47 символов в verbose_name до примерно 20).Теперь все отлично работает.