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

如果您需要更多帮助,请告诉我。