2015-08-14 83 views
0

我使用mongoengine我project.When我试图执行syncdb命令,我现在面临以下错误:Django的:Mongoengine执行syncdb失败

File "C:\Python34\lib\site-packages\django\db\backends\dummy\base.py" 
raise ImproperlyConfigured("settings.DATABASES is improperly configured." 
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. 
Please supply the ENGINE value. Check settings documentation for moredetails. 

这里是settings.py代码

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.dummy', 
    } 
} 

AUTHENTICATION_BACKENDS = (
    'mongoengine.django.auth.MongoEngineBackend' 
) 
SESSION_ENGINE = 'mongoengine.django.sessions' 


_MONGODB_HOST = 'localhost' 
_MONGODB_NAME = 'demo' 

conn = mongoengine.connect(_MONGODB_NAME,host=_MONGODB_HOST) 

我想使用mongodb进行用户身份验证,因此我需要在Database中创建用户身份验证集合。是否可以在mongoengine?如果你想使用MongoDB的mongoengine

谢谢

回答

2

syncdb命令可用于如MySQL关系数据库,Postgres的等等,你不需要跑syncdb。如果你定义了mongoengine文档,它们可以直接用于查询。欲了解更多详情,请阅读mongoengine connect。还请看defining-documents与mongoengine。

2

Django被编写用于关系数据库。 syncdb所做的是在您的settings.py文件中列出的关系数据库中创建您的表。

Mongo-db另一方面是非关系数据库,因此无模式。 syncdb在这里不起作用,因为没有要生成的模式/表。

您使用mongoengine连接到mongo-db的方式是正确的。现在您只需创建模型并开始使用。请从您的settings.py文件中删除DATABASESAUTHENTICATION_BACKENDS

正常身份验证在您执行mongo-db时不起作用。使用mongo-db检查this link以实现身份验证。

另外,为了更好的理解,进一步阅读mongoengine docs