模块“mymodule”没有定义“MyBackend”身份验证后端

时间:2010-07-28 17:11:21

标签: python django authentication

我正在尝试为我正在使用的Django项目使用自定义身份验证后端。我的后端基于文章LDAP Authentication in Django with Backends中的LDAPBackend。

当我尝试登录时,我收到了floowing错误:

ImproperlyConfigured at /admin/ 
Module "challenge.backends" does not define a "LDAPBackend" authentication backend

我的项目被称为“挑战”。有一个子目录“后端”,其中包含__init__.pyLDAPBackend.py

我的settings.py配置为使用此后端:

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

我可以使用python manage.py shell然后from challenge.backends import LDAPBackend自行导入模块。

我不确定现在要检查什么,因为一切似乎都在正确的位置。

1 个答案:

答案 0 :(得分:6)

您正以错误的方式导入它。您正在导入模块,而不是类。这就是为什么shell允许你导入它,但django抱怨。

您应该使用challenge.backends.LDAPBackend.LDAPBackend

另外,在命名模块时坚持使用PEP8是个好主意,这样你就不会再这样混淆了。模块应该是小写的名称,没有空格,下划线等。