J'ai ajouté un backend personnalisé pour permettre à un utilisateur de se connecter avec un nom d'utilisateur ou un e-mail en plus du mot de passe. Cela fonctionne bien sauf lorsque l'email est plus long que 30 caractères. L'erreur de forme que je reçois est:30 erreur de limite de char lors de la connexion au site django avec email et mot de passe
"Ensure this value has at most 30 characters (it has 35)."
Dans un mon mon fichier urls.py d'applications que j'ai redéfinie la max_length du champ de nom d'utilisateur comme ceci:
from django.contrib.auth.forms import AuthenticationForm
AuthenticationForm.base_fields['username'].max_length = 75
J'ai même essayé le technique du signal class_prepared décrit ici:
http://stackoverflow.com/questions/2610088/can-djangos-auth-user-username-be-varchar75-how-could-that-be-done/2613385#2613385
Je ne sais pas où je vais mal ici et je vous remercie de l'aide.
Avez-vous fait en sorte que le champ de nom d'utilisateur dans la base de données peut contenir des chaînes plus longues de 30 chars? Le signal 'class_prepare' ne sera utile que si vous avez exécuté syncdb et créé la table. Syncdb ne modifie jamais les tables existantes. – OmerGertel