Aggiornamento: il limite di 50 car is now 255 in Django 1.8
-
risposta originale:
Ho appena incontrato questo pomeriggio, troppo, e ho una correzione (specie di)
Questo post here implica che si tratta di un errore di Django correlato alla lunghezza del valore consentito per auth_permission. Un ulteriore scavo conferma questa idea, così come lo è this Django ticket (anche se inizialmente è collegato a MySQL).
È fondamentalmente che un nome di autorizzazione viene creato in base al nome_prodotto di un modello più una stringa di autorizzazione descrittiva e che può eccedere su più di 50 caratteri consentiti in auth.models.Permission.name.
Per citare un commento sul biglietto Django:
The longest prefixes for the string value in the column auth_permission.name are "Can change " and "Can delete ", both with 11 characters. The column maximum length is 50 so the maximum length of Meta.verbose_name is 39.
Una soluzione potrebbe essere quella di incidere la colonna per sostenere> 50 caratteri (idealmente tramite una migrazione del Sud, dico, in modo che sia facilmente ripetibile), ma la soluzione più rapida e più affidabile che potessi pensare era semplicemente di rendere la mia definizione verbose_name extra-lunga molto più breve (da 47 caratteri nel file verbose_name a circa 20). Tutto funziona bene ora.
fonte
2010-09-27 17:13:25
Grazie mille per questo - risolve l'intero problema di utf8 creazione di database da parte di django-testing. – RichVel