代码之家  ›  专栏  ›  技术社区  ›  Zack The Human Kunal

模块“mymodule”未定义“mybackend”身份验证后端

  •  2
  • Zack The Human Kunal  · 技术社区  · 14 年前

    我正在尝试为我正在处理的Django项目使用自定义的身份验证后端。我的后端基于本文中找到的ldapbackend LDAP Authentication in Django with Backends .

    尝试登录时出现浮动错误:

    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 .

    我不知道现在该检查什么,因为一切似乎都在正确的地方。

    1 回复  |  直到 13 年前
        1
  •  6
  •   gruszczy    14 年前

    您导入的方式不正确。您正在导入模块,而不是类。这就是壳牌公司允许你进口的原因,但Django抱怨道。

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

    另外,在命名模块时,最好坚持使用PEP8,这样您就不会再被这种方式混淆了。模块的名称应全部为小写,不含空格、下划线等。