Mongoengine:ConnectionError:您尚未定义默认连接

时间:2014-02-17 00:08:17

标签: python django mongodb mongoengine

在我的新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')

提前感谢您的帮助

3 个答案:

答案 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时,您可能会发现以下错误。

“* Django-nonrel和MongoDB上的错误:AutoField(默认主键)值必须是表示MongoDB上的ObjectId的字符串(取而代之的是u'1'。请确保您的SITE_ID包含有效的ObjectId字符串。*”

请点击此链接进行修复。

https://gist.github.com/ielshareef/2986459

如果您需要更多帮助,请与我们联系。