运行django 1.11并尝试使用django模块ldapdb连接LDAP服务器(django-ldapdb=0.8.0):
DATABASES = {
'ldap': {
'ENGINE': 'ldapdb.backends.ldap',
'NAME': 'ldap://192.168.1.39/',
},
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'prot', # Or path to database file if using sqlite3.
'USER': 'prot', # Not used with sqlite3.
'PASSWORD': 'geheim', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '5432', # Set to empty string for default. Not used with sqlite3.
},
}
DATABASE_ROUTERS = ['ldapdb.router.Router']但是,我在ldapdb代码中得到了一个错误。
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f4ba61ff840>
Traceback (most recent call last):
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/utils/autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
self.check(display_num_errors=True)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/core/management/base.py", line 359, in check
include_deployment_checks=include_deployment_checks,
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/core/management/base.py", line 346, in _run_checks
return checks.run_checks(**kwargs)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/core/checks/registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/core/checks/model_checks.py", line 30, in check_all_models
errors.extend(model.check(**kwargs))
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/db/models/base.py", line 1284, in check
errors.extend(cls._check_long_column_names())
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/db/models/base.py", line 1699, in _check_long_column_names
connection = connections[db]
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/db/utils.py", line 212, in __getitem__
conn = backend.DatabaseWrapper(db, alias)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/ldapdb/backends/ldap/base.py", line 187, in __init__
super(DatabaseWrapper, self).__init__(*args, **kwargs)
File "/home/nfs/ruben/Projects/prot-zboss/venv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 96, in __init__
self.client = self.client_class(self)
TypeError: 'NoneType' object is not callableldapdb 0.8是最后一个版本,支持django >=1.10。
发布于 2017-06-14 11:49:56
更新:
django-ldapdb版本必须至少为0.9。
pip install django-ldapdb>=0.9旧岗位:
django-ldapdb目前只支持Django版本的1.8-1.10。
因此,解决方案实际上很简单:
pip install Django==1.10 https://stackoverflow.com/questions/43897271
复制相似问题