2010-07-28 2 views
1

Я пытаюсь использовать собственный сервер аутентификации для проекта Django, над которым я работаю. Мой бэкэнд основан на LDAPBackend, найденном в статье LDAP Authentication in Django with Backends.Модуль «mymodule» не определяет бэкэнда аутентификации «MyBackend»

Я получаю ошибку floowing при попытке войти в систему:

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.

Я не уверен, что сейчас проверять, поскольку все, кажется, находится в нужном месте.

ответ

5

Вы импортируете его неправильно. Вы импортируете модуль, а не класс. Вот почему оболочка позволяет вам импортировать ее, но django жалуется.

Вы должны использовать challenge.backends.LDAPBackend.LDAPBackend.

Кроме того, это хорошая идея придерживаться PEP8 при именовании модулей, таким образом, вы больше не будете путать этот путь. Модули должны быть именами в нижнем регистре и без пробелов, символов подчеркивания и т. Д.

+0

Работали как очарование. Спасибо за напоминание о названии модуля. Я тоже это исправил! –

+0

Рад, что я мог бы помочь :-) – gruszczy

Смежные вопросы