我正在尝试为我正在使用的Django项目使用自定义身份验证后端。我的后端基于文章LDAP Authentication in Django with Backends中的LDAPBackend。
当我尝试登录时,我收到了floowing错误:
ImproperlyConfigured at /admin/
Module "challenge.backends" does not define a "LDAPBackend" authentication backend
我的项目被称为“挑战”。有一个子目录“后端”,其中包含__init__.py
和LDAPBackend.py
。
我的settings.py
配置为使用此后端:
AUTHENTICATION_BACKENDS = (
'challenge.backends.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
我可以使用python manage.py shell
然后from challenge.backends import LDAPBackend
自行导入模块。
我不确定现在要检查什么,因为一切似乎都在正确的位置。
答案 0 :(得分:6)
您正以错误的方式导入它。您正在导入模块,而不是类。这就是为什么shell允许你导入它,但django抱怨。
您应该使用challenge.backends.LDAPBackend.LDAPBackend
。
另外,在命名模块时坚持使用PEP8是个好主意,这样你就不会再这样混淆了。模块应该是小写的名称,没有空格,下划线等。