Aktualizacja:limit 50 znaków wynosi teraz 255 w Django 1.8
--
Oryginalna odpowiedź:
Właśnie spotkałem to po południu i mam poprawkę (rodzaj)
Ten post tutaj sugerował, że jest to błąd Django związany z długością wartości dozwolonej dla auth_permission. Dalsze kopanie potwierdza ten pomysł, podobnie jak ten bilet Django (nawet jeśli początkowo jest związany z MySQL).
Zasadniczo nazwa uprawnienia jest tworzona na podstawie verbose_name modelu oraz opisowego ciągu uprawnień i może przekroczyć 50 znaków dozwolonych w auth.models.Permission.name.
Aby zacytować komentarz na bilecie Django:
Najdłuższe prefiksy wartości ciągu w kolumnie auth_permission.name to „Może zmienić” i „Może usunąć”, oba mają 11 znaków. Maksymalna długość kolumny to 50, więc maksymalna długość Meta.verbose_name to 39.
Jednym z rozwiązań byłoby zhakowanie tej kolumny, aby obsługiwała> 50 znaków (najlepiej poprzez migrację na południe, mówię, aby była łatwa do powtórzenia), ale najszybszą i najbardziej niezawodną poprawką, o której mogłem pomyśleć, było po prostu zrobienie mojej bardzo długiej definicji verbose_name dużo krótsze (od 47 znaków w verbose_name do około 20). Teraz wszystko działa dobrze.