我是新來的Django和相當困惑的第三方應用程序是如何最好的集成。在我對DRY的(可能是天真的)解釋中,我想盡量減少複製/粘貼不僅我自己的代碼而且其他人的代碼,所以我很滿意,例如,使用contrib.auth的模式主要是黑色如果我需要auth.User的附加信息(通過用UserProfile對象或繼承來擴展auth.User)。這就是我想象的,我也會使用大多數第三方應用程序。集成第三方應用程序的Django和模板
不過,我很快就發現,這是很困難的,所以現在我已經辭職,讓所有我的生活我的項目文件夾內的第三方應用程序,基本上都是以最小的變化整個副本的「副本」。最後一根稻草是我想添加一個基本的博客(我在django-basic-blog上定過的),並且只需要更改一個模板,並且我想沒有比在項目中使用該應用程序副本更好的解決方案單個模板已更改。
我的問題:
-
在我需要改變只是一個單一的模板,這種特定的情況下
- ,就是這個(複製整個應用程序在)我能做到的最好?如果我只需要改變單一的模式,我可以保持第三方應用恭敬地完整,在我自己的應用程序做一個模型繼承...一般
- ,這種做法我的項目下複製應用程序和修補每一個的一點點感覺瘋狂浪費和骯髒。這也感覺,如果我使用的是經常更新的第三方應用程序,同步更改將會很麻煩。我應該只是學會愛炸彈,還是有一些明顯的架構模式/ Django提供的幫助,我錯過了?
啊。謝謝。這完全回答了我的第一個問題。 – yanzhang 2012-02-25 17:59:18
另外,從您的迴應中,您似乎暗示幾乎總是有一種方法來使用第三方模塊而不明確更改其代碼。現在讓我嘗試猜測你已經教給我關於模板的事情:對於每個第三方應用程序「TheirApp」來說,我應該創建一個「MyApp」目錄,在這裏我可以從TheirApp導入/擴展模型和視圖,創建/模板(並確保TEMPLATE_LOADERS中的排序是正確的),並將這兩個應用程序和MyApp添加到設置中。這是正確的模式嗎? – yanzhang 2012-02-25 18:03:21
在你的項目中,你通常有'/ templates'目錄,你的模板在哪裏。也放置第三方模板。 – 2012-02-25 18:06:57