例如說我有一個Blog應用程序,我希望能夠放入不同的項目,但我總是希望博客與其他模型相關聯。例如,在一個情況下,我可能希望它與用戶相關聯:你如何製作Django應用程序插件?
site.com/someuser/blog
但在其他網站上我希望它用,比如,一所學校有關:
site.com/someschool/blog
有沒有辦法讓博客應用可插拔的,這樣就沒有必要每當我拖放到一個項目,以重新定義模式(增加一個外鍵字段)?
例如說我有一個Blog應用程序,我希望能夠放入不同的項目,但我總是希望博客與其他模型相關聯。例如,在一個情況下,我可能希望它與用戶相關聯:你如何製作Django應用程序插件?
site.com/someuser/blog
但在其他網站上我希望它用,比如,一所學校有關:
site.com/someschool/blog
有沒有辦法讓博客應用可插拔的,這樣就沒有必要每當我拖放到一個項目,以重新定義模式(增加一個外鍵字段)?
您可能需要查看ContentTypes框架,我用它創建了一個評論應用程序,可用於評論數據庫中的任何模型(出於不同的原因,我不想使用標準的django評論應用程序)。
http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/
有用於確保應用程序可以重複使用的幾個重要的細節,我認爲這是最好的鏈接到兩個文件的話題更重要的集:
Generic relationships允許您擁有任何其他型號的外鍵。然而,從你的問題中不清楚你想要外鍵鏈接到什麼類型的對象。我懷疑外鍵關係不是真正的通用 - 你只是沒有發現你的系統的另一部分,也可能是一個可重用的應用程序。
檢查最後的django會議,討論可插拔應用程序 – yesraaj 2009-05-04 06:40:50