Mongoengine:ConnectionError:您尚未定义默认连接
问题内容:
在我的新Django项目中,我建立了一个MongoDb数据库并使用mongoengine模块,但是无法在视图的shell no中正确访问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')
预先感谢您的帮助
问题答案:
要将django与MongoDB结合使用,请勿使用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时,您可能还会发现以下错误。
“ * Django-
nonrel和MongoDB上的错误:AutoField(默认主键)值必须是代表MongoDB上的ObjectId的字符串(取而代之的是u‘1’。请确保您的SITE_ID包含有效的ObjectId字符串。“
请点击此链接进行修复。
https://gist.github.com/ielshareef/2986459
如果您需要更多帮助,请告诉我。