我有一個通用的關係的模型:如何從Django模型獲取應用程序?
TrackedItem --- genericrelation ---> any model
我希望能夠得到一般,從最初的模型,跟蹤項目。
我應該可以在任何模型上進行修改而不用修改它。
爲此,我需要獲取內容類型和對象ID。獲取對象ID很容易,因爲我有模型實例,但獲取內容類型不是:ContentType.object.filter需要模型(僅爲content_object.__class__.__name__
)和app_label。
我不知道如何以可靠的方式獲取模型所在的應用程序。
現在我做app = content_object.__module__.split(".")[0]
,但它不適用於django contrib應用程序。
這是比使用_meta更好的解決方案。 – Wogan 2010-04-30 06:47:48
是嗎?這不是命中數據庫嗎? – meshy 2014-11-03 16:44:01
@meshy yes但django ContentType在其管理器上使用緩存,因此它只在每個模型中查詢一次。 – dalore 2016-03-06 11:05:18