【发布时间】:2018-02-22 01:48:10
【问题描述】:
我有一个 django 项目,默认在 Django 上测试只适用于 sql 数据库,但我需要在 mongodb 和 mongoengine 上工作。 我使用 Django 1.9,mongoengine 0.9 因为它支持 django。 我在这里关注文档https://mongoengine.readthedocs.io/en/v0.9.0/django.html 和用于测试的 django 文档https://docs.djangoproject.com/en/1.8/topics/testing/tools/ 问题是我如何配置测试文件来告诉它我想使用 mongodb 数据库。没有任何设置,测试文件如下所示:
import unittest
from django.test import Client
from .models import User
class UserTests(unittest.TestCase):
def setUp(self):
self.client = Client()
def test_create_user(self):
self.client.post('/users/', {'first_name': 'aaa', 'last_name': 'bbb',
'username': 'xxx', 'email': 'abc@gmail.com'})
...
运行python manage.py test时的错误是:
raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
在settings.py:
from mongoengine import connect
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy',
},
}
connect(
host='mongodb://localhost/book'
)
【问题讨论】:
-
见github.com/MongoEngine/mongoengine/issues/950 MongoDB 是 Django 数据库的糟糕选择
-
我也更喜欢sql,但是团队一开始是和mongo合作的,后来我加入了,所以别无选择。更改版本似乎可行,但引发另一个错误,我将编辑问题
标签: python django mongodb mongoengine