2013-12-10 58 views
1

行..我在django 1.4中開始一個項目,我希望MongoDB作爲我的後端。經過半天的谷歌搜索,我發現mongoengine是一個最好的選擇(因爲它是一個活躍的項目,並提供像orm的django)Django與MongoDB

現在的問題是 1.我找不到任何好的step-將mongoengine與django項目集成在一起的分步設置指南。

  1. 據我所知,使用mongoengine意味着我正在替換django orm,並且不需要執行syncdb。現在這個項目有一個多租戶架構(* .domain.com),我將使用中間件來解決這個項目的大部分工作將在django admin上運行。 問題:用mongoengine替換django orm會不會影響django admin和其他操作(如中間件,認證等)?

我很樂意接受建議和批評。

+1

建議:不要使用MongoDB作爲Django的後端。分開使用它,但讓Django使用關係數據庫。 –

+0

這種應用程序有一個不斷髮展的數據方案......所以沒有別的選擇,只能使用noSQL。 –

+0

您可以輕鬆更改(關係)模型並遷移。這是不尋常的。你能解釋一下「不斷演變的數據方案」是什麼意思嗎? – YXD

回答

2

Django Admin只能用於Django ORM。使用MongoEngine和沒有Django ORM將意味着你不會得到自動管理界面。其他中間件可能會使用Django ORM或足夠抽象以允許您插入MongoEngine - 例如:會話和身份驗證。

在MongoEngine中有一些Django的助手 - 但它並不完全或被設計爲替代Django ORM。

欲瞭解更多信息,請參閱從Django中的conf芬蘭此演示:http://staltz.github.io/djangoconfi-mongoengine

3

以防萬一,情況發生了變化,有一個解決方案現在對於這個問題,即django-mongoadmin

1

指南與MongoDB的

整合的Django的方式只需添加一行代碼以Django的用MongoDB的連接:

首先安裝djongo:

pip install djongo

然後運行你的遷移:

manage.py make migrations 
manage.py migrate 

最後添加到您的設置文件:

DATABASES = { 
    ‘default’: { 
     ‘ENGINE’: ‘djongo’, 
     ‘NAME’: ‘your-db-name’, 
    } 
} 

它就是這麼簡單!

如果你想使用Django管理操作的MongoDB,只需火起來:

manage.py runserver

轉到:http://localhost:8000/admin/

如本屏幕截圖操縱你的嵌入式型號:

enter image description here

欲瞭解更多信息,請購買結賬djongo documentation

您絕對應該考慮使用NEW框架(如MongoEngine)與使用內置Django ORM的優缺點。在考慮採用MongoEngine之前,請閱讀tutorial,正如其他知識淵博的成員所建議的那樣!沒有惡意!

讓我知道如果你同意這種方式的評論:)

+0

這看起來不錯,我想知道爲什麼其他人沒有upvoted它。截至目前,2018年1月24日,該項目似乎非常活躍,儘管不是GitHub明星。我喜歡這個選項,但它似乎還沒有獲得牽引力。 – nicorellius