我试图用Mongoengine和Django来执行一个简单的插入操作。保存()在Mongoengine中不起作用
关于我的项目结构,简单地说,我有一个项目,AProject和一个应用程序AnApp。我在一台IP地址为X.X.X.X的远程机器上运行mongo。我能够使用Robomongo插入文档。
我已经删除了位于AProject目录内的settings.py的默认数据库配置部分。新添加的行如下所示:
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
import mongoengine
# ----------- MongoDB stuff
from mongoengine import register_connection
register_connection(alias='default', name='AProject', host='X.X.X.X')
# ----------
现在让我们看看位于AnApp中的models.py和views.py。
models.py
from mongoengine import Document, StringField
class Confession(Document):
confession = StringField(required=True)
views.py
from django.http import HttpResponse
from models import Confession
from mongoengine import connect
def index(request):
connect('HacettepeItiraf', alias='default')
confession = Confession()
confession.confession = 'First confession from the API'
print(confession.confession + ' Printable') # The output is --First confession from the API Printable--
print(confession.save()) # The output is --Confession object--
return HttpResponse(request)
位于内部在进行一个项目的urls.py是如下简单:
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^confessions/', include('confession.urls')),
url(r'^admin/', admin.site.urls),
]
当我进入http://127.0.0.1:10000/confessions/我看到了我期待的黑屏。但是没有从API中保存的东西。我得到预期的输出,除了Confession object
。
我该如何解决这个问题?
是否mongoengine即使Django的1.11/ – e4c5
工作,我不知道。任何人都知道吗? –
它只兼容1.8。对我来说,真正的秘密就是人们为什么要把django和mongo结合起来。这不是世界上最好的组合。 Django的优势在于它是非常棒的ORM。这甚至应该如何与NoSQL系统一起工作? – e4c5