2015-06-30 106 views
1

我正在用django/django-cms開發一個網站,並希望用其他一些自定義驗證(LDAP)擴展工具欄登錄。問題是我不太確定如何擴展此表單的驗證。我有Django的-CMS包中發現,該文件toolbar.py擴展django-cms工具欄登錄

class CMSToolbarLoginForm(AuthenticationForm): 
    username = forms.CharField(label=_("Username"), max_length=100) 

    def __init__(self, *args, **kwargs): 
     kwargs['prefix'] = kwargs.get('prefix', 'cms') 
     super(CMSToolbarLoginForm, self).__init__(*args, **kwargs) 

據我瞭解,這種形式從Django的延伸AuthenticationForm並添加自己的定製用戶名字段。那是對的嗎?

此外,我怎麼會得到這種形式重定向到失敗的另一種觀點?就像用戶在db和user/pass匹配然後登錄一樣,但是如果用戶不在db重定向到另一個視圖,那麼我可以從我的ldap目錄中檢索用戶?

回答

0

通常情況下,您需要啓用自定義登錄後端,以執行身份驗證工作。無需重寫任何表格。

您可以使用django-auth-ldap並添加設置:

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend', 
    'django.contrib.auth.backends.ModelBackend', 
) 

你可以看到更多在:https://pythonhosted.org/django-auth-ldap/install.html