在我的新Django项目中,我设置了MongoDb数据库并使用mongoengine模块 但我无法在视图中正确访问shell中的dabase nore。 “ConnectionError:您尚未定义默认连接”
我的settings.py包含以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DaTaBaSe',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
},
'tracking': {
'ENGINE': 'django.db.backends.dummy',
'NAME': 'analytics',
}
}
import mongoengine
SESSION_ENGINE = 'mongoengine.django.sessions'
mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
在models.py中 进口mongoengine
from mongoengine import *
from myproject.settings import _MONGODB_NAME
mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
提前感谢您的帮助
答案 0 :(得分:16)
我没有对此进行过深入的测试,但到目前为止它对我有用:
mongoengine.connect('yourdb', alias='default')
答案 1 :(得分:1)
在您的settings.py文件中替换:
mongoengine.connect(_MONGODB_NAME, 'localhost:27017')
使用以下代码(注意添加的' host = '):
mongoengine.connect(_MONGODB_NAME, host='localhost:27017')
答案 2 :(得分:0)
要在MongoDB中使用django,请不要使用https://www.djangoproject.com上提供的django软件包并安装mongoengine等其他软件包,如果按照此过程进行操作,您会发现很多困难。
相反,您需要使用已从djangoproject派生的django的no @ rel版本并添加了MongoDB支持,我相信它将使安装过程和开发过程更容易。
按照此链接安装和设置与MongoDB的django。 http://django-mongodb-engine.readthedocs.org/en/latest/topics/setup.html
“* Django-nonrel和MongoDB上的错误:AutoField(默认主键)值必须是表示MongoDB上的ObjectId的字符串(取而代之的是u'1'。请确保您的SITE_ID包含有效的ObjectId字符串。*”
https://gist.github.com/ielshareef/2986459
如果您需要更多帮助,请与我们联系。