我正在尝试为我正在处理的Django项目使用自定义身份验证后端。我的后端基于文章LDAP Authentication in Django with Backends中的LDAPBackend。
当我试图登录时,出现了楼层错误:
ImproperlyConfigured at /admin/
Module "challenge.backends" does not define a "LDAPBackend" authentication backend
我的项目叫做“挑战”。有一个子目录“backends”,其中包含
__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
导入模块。我不知道现在该检查什么,因为一切似乎都在正确的地方。
最佳答案
你的进口方式不对。导入的是模块,而不是类。这就是为什么shell允许您导入它,但django抱怨道。
您应该使用challenge.backends.LDAPBackend.LDAPBackend
。
另外,在命名模块时最好坚持使用PEP8,这样您就不会再次被混淆了。模块的名称应全部为小写,不带空格、下划线等。
关于python - 模块“mymodule”未定义“MyBackend”身份验证后端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3355492/