我是Django和MVT的新手,所以我很抱歉如果這是一個愚蠢的問題。我查看了一些類似的問題,但我正在尋找一些額外的清晰度,以及我是否試圖做正確的事情。Django,模型和應用程序
下面是我正在處理的簡化版本。假設我正在設計一個Django接口到一個預先存在的數據庫。數據庫是舊的,其他系統向它添加數據。 Django界面將是隻讀的。簡單的結構與4的內容表:
- 小工具
- 創想(爲簡單起見,每個小部件都有一個造物主)
- 客戶
- 訂單(客戶多到不少訂單,訂單很多,TO-很多小部件)
我開始創建一個名爲「Widget」的Django應用程序,該應用程序顯示Widget信息併爲數據庫中的所有表創建模型。這很好用,像/ widget/1234這樣的URL我得到了ID爲1234的Widget的信息,來自Creator表的信息以及它已經訂購了多少次。
現在我想創建一個名爲「Customer」的應用程序,它顯示客戶的信息(客戶表中的數據,下達的訂單,訂購的小部件等)。
我做錯了什麼嗎?是否應該有一個單獨的「客戶」應用程序?
如果確實有一個獨立的「客戶」應用程序是有意義的,我該如何處理這些模型?它們與「Widget」應用程序中使用的模型相同,因爲它們處理同一數據庫中的相同表格。我只是從其他應用程序導入?謝謝!
我有我的模型定義,完整的ForeignKeys等,多虧了「manage.py inspectdb」命令,也有添加幾個db_column和related_name參數,但都很好。所以,我有/ widget/1234從多個表中拉出數據並使用模板輸出。我想我不確定的事情是什麼時候功能應該移到新的應用程序?即,如果到目前爲止我的應用程序中有純粹的「Widget」面向的頁面(小部件搜索,小部件詳細信息視圖),並且我想要「面向客戶」和「訂購」的頁面,那麼應保留在同一個應用程序中或做一個新的?相同的型號。 – Raolin
並感謝您的答案,順便說一句! – Raolin
我明白了,聽起來你比我想象的要遠得多。您應該創建新應用的標準不取決於頁面的類型,因爲該頁面的視圖很容易處理。相反,根據文檔,應用程序是「執行某項操作的Web應用程序 - 例如,Weblog系統,公共記錄數據庫或簡單的投票應用程序。」所以如果你有一個非常簡單的應用程序,它看起來像你可能有,你真的只需要一個應用程序。 –