我試圖用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