Django.core.exceptions.improperyconfigured:“Django_mongodb_engine”不是可用的数据库后端

2024-04-26 05:01:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法正常运行django mongo引擎。

settings.py中的数据库条目是

DATABASES = {
'default': {
    'ENGINE': 'django_mongodb_engine',
    'NAME': 'local',
}
}

我的pip冻结结果是

Django==1.8.2
django-mongodb-engine==0.5.2
djangotoolbox==1.6.2
pymongo==3.0.2

运行时出错

python manage.py runserver

django.core.exceptions.ImproperlyConfigured: 'django_mongodb_engine' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
u'base', u'mysql', u'oracle', u'postgresql_psycopg2', u'sqlite3'
Error was: cannot import name BaseDatabaseFeatures

有什么解决办法吗。


Tags: pipdjangonamepy引擎数据库defaultsettings
3条回答

但是,主要的缺点是django-nonrel只在使用Python2.x时才起作用,它不能与Python3.x一起工作

您还需要按照documentation安装django-nonrel

我有这个问题。如果您打算使用Django 1.7.x, 1.8.x,一个运行良好的库是:
django-mongoengine v0.2.1

在以后的版本(pip install django-mongoengine)中,它会强制安装Django 2.x(您仍然可以通过添加--no-deps来取消安装),但如果通过以下方式强制安装Django mongoengine包版本,则麻烦更小: `pip安装git+https://github.com/MongoEngine/django-mongoengine@v0.2.1

requirements.txt文件保持如下:

Django==1.7.11
-e git+https://github.com/MongoEngine/django-mongoengine@4ea7168faf9b6f67a5c9e8e82690b4310aca0ff0#egg=django_mongoengine-v0.2.1
djangotoolbox==1.8.0
mongoengine==0.13.0
pymongo==2.8
pyserial==3.1.1
requests==2.13.0
six==1.10.0
wheel==0.24.0

django-mongoengine的好处是mongoengine很容易让您使用access pymongo方法:

class Post(Document):
    #fields    

collection = Post._get_collection()
collection.update({}, {"$set": {"newfield": 1}}, multi=True)

相关问题 更多 >