Django Mongoengine无法连接到MongoDB
问题描述:
我们使用Django 1.7
,Mongoengine 0.8.7
,MongoDB 2.4.7
和Python 3.4
来构建我们的环境。Django Mongoengine无法连接到MongoDB
我们已经安装了django-rest-framework,可是当我们尝试运行该网站的例子中,我们得到以下错误:
ImproperlyConfigured at /users/
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Request Method: GET
Request URL: http://localhost:8000/users/
Django Version: 1.7
Exception Type: ImproperlyConfigured
Exception Value:
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Exception Location: /Users/user_name/Development/projects/current_project/lib/python3.4/site-packages/django/db/backends/dummy/base.py in complain, line 18
Python Executable: /Users/user_name/Development/projects/current_project/bin/uwsgi
Python Version: 3.4.1
Python Path:
['.',
'',
'/Users/user_name/Development/projects/current_project/lib/python34.zip',
'/Users/user_name/Development/projects/current_project/lib/python3.4',
'/Users/user_name/Development/projects/current_project/lib/python3.4/plat-darwin',
'/Users/user_name/Development/projects/current_project/lib/python3.4/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
'/Users/user_name/Development/projects/current_project/lib/python3.4/site-packages']
这是我们已经在我们的settings.py
根据,我们有文件改变发现:
import mongoengine
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy',
}
}
mongoengine.connect('database_name', username='root', password='password')
SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'
对于我们所看到的,如果我们通过mongoengine.connect
方法连接发动机参数不应该被忽视,但我们不是发现这个错误。任何人都知道我们如何解决它?
答
经过一番研究,我们发现了如何解决这个问题。
除了可以在http://www.django-rest-framework.org/上找到的示例之外,我们还遵循Quickstart guide。遵循本指南,我们解决了我们的问题。
非常感谢所有的答案!
答
我使用MongoDB的设置在settings.py文件的末尾这样
# Mongodb settings
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
MONGO_DATABASE_NAME = 'prod'
MONGOENGINE_USER_DOCUMENT = 'mongoengine.django.auth.User'
SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'
from mongoengine import connect
connect(MONGO_DATABASE_NAME)
答
内容添加到settings.py中:
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
也许这可以帮助您。
你是否让django管理员使用mongodb? – Bedros 2014-11-17 20:07:07
嗨@Bedros,对不起,但没有。如果我们找到方法,我们会让你知道。 – Albert 2014-11-23 10:41:27