2010-10-16 130 views
0

我在我的django應用程序中使用自定義auth後端,允許用戶使用其他電子郵件登錄。管理員在Django登錄時更改表單驗證

但是當我嘗試在管理員登錄我得到的消息:「用戶名不能包含‘@’字符」

我想它到達AUTH後端之前提出了這個錯誤,所以它的形式問題, 對 ?

回答

1

不幸的是,如果認證失敗並且沒有用戶使用給定的電子郵件,就會引發此錯誤。壞事是這個驗證是硬編碼的[1]。

這是[2]的開放門票。

由於1.2版本的django允許郵件爲User.username,如果您使用的是這個版本,也許您甚至不需要自定義auth後端。但是bug [2]依然存在!

我可以看到,以除去此驗證的唯一解決方案是創建定製AdminSite並重寫login()方法,其是壞...

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