我正在尝试为我正在处理的Django项目使用自定义身份验证后端。我的后端基于文章LDAP Authentication in Django with Backends中的LDAPBackend。
当我试图登录时,出现了楼层错误:

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

我的项目叫做“挑战”。有一个子目录“backends”,其中包含__init__.pyLDAPBackend.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/

10-13 09:06