9

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

我在 settings.py 中的数据库条目是

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

我的点冻结结果是

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

任何建议如何解决这个问题。

4

7 回答 7

3

django-nonrel根据文档,您还需要安装。

于 2015-05-29T10:27:58.613 回答
1

与通过 ide 安装相比,尝试卸载“Pymongo”并将其安装为“pip install pymongo”

于 2020-04-14T12:12:42.977 回答
0

但是,主要的缺点是django-nonrel只有在你使用时才有效Python2.x,它不能与Python3.x

于 2018-01-08T13:18:39.797 回答
0

出现此错误是因为 django utils.py 文件无法识别 django 是可用的后端。要解决此错误,请按照以下步骤操作:

  1. 转到C:\Users\User\AppData\Local\Programs\Python\Python38-32\Lib\site-packages并找到 django 文件夹。

  2. 现在剪切并粘贴目录中的 django 文件夹 C:\Users\User\AppData\Local\Programs\Python\Python38-32\Lib\site -packages\django\db\backends

  3. 现在您可能会收到错误无法从 django.utils 导入六个。为了解决这个问题,转到C:\Users\User\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\django\db\backends\django\operations.py文件并将行替换为只是 write 的行from django.utils import six , datetimefrom django.utils import datetime下面的行import six

  4. 现在在你的 django 项目的 settings.py 文件中添加这些行

    DATABASES = {
       'default': {
        'ENGINE': 'django.db.backends.djongo',
        'NAME': 'admin',
     }
    }
    
于 2020-01-06T10:40:51.890 回答
0

我有这个问题。如果您打算使用 ,那么可以正常工作Django 1.7.x, 1.8.x的库是:
django-mongoengine v0.2.1

在以后的版本(pip install django-mongoengine)中,它强制安装 Django 2.x(您仍然可以通过添加取消--no-deps)但如果通过以下方式强制 django-mongoengine 包版本,那么麻烦会更少:`pip install 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 很容易让你访问 pymongo方法:

class Post(Document):
    #fields    

collection = Post._get_collection()
collection.update({}, {"$set": {"newfield": 1}}, multi=True)
于 2018-03-21T22:30:27.130 回答
0

好吧,我的pipenv激活时遇到了同样的问题。后来,我发现我的pipenv中没有安装djongo。我刚刚安装了它。它现在工作正常。

pipenv install djongo
于 2022-01-02T16:37:34.220 回答
0

如果您使用 djongo 并在调用 make migrations 时遇到此错误,请执行以下操作:

打开终端并安装pytz(pip install pytz)

于 2021-12-28T13:42:42.020 回答