2010-10-16 27 views
0

J'utilise un backend d'authentification personnalisé dans mon application django qui permet aux utilisateurs de se connecter avec d'autres emails.Validation de formulaire pour la connexion Admin à Django

Mais quand j'essaie de me connecter dans l'admin je reçois le message: « les noms d'utilisateur ne peuvent pas contenir le « @ » char »

Je suppose que cette erreur est soulevée avant d'atteindre le backend auth, de sorte que son un problème de forme , droite ?

Répondre

1

Malheureusement non, cette erreur est levée juste si l'authentification échoue et qu'il n'y a pas d'utilisateur avec l'email donné. La mauvaise chose est que cette validation est codée en dur [1].

Il existe un ticket ouvert pour cela [2].

Depuis la version 1.2, django autorise les emails en tant que User.username, si vous utilisez cette version, vous n'aurez peut-être même pas besoin d'un backend d'authentification personnalisé. Mais le bug [2] persiste!

La seule solution que je peux voir pour supprimer cette validation est de créer un AdminSite personnalisé et passer outre la méthode login(), ce qui est mauvais ...

[1] http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/sites.py#L323 [2] http://code.djangoproject.com/ticket/13928