2015-04-03 167 views
0

我有一個應用程序應該爲不同的網站提供服務。 Sites framework已經在那裏,但在這個應用程序中一些網站共享某些資產(CSS等)。因此,我希望有一個與Site具有一對多關係的附加模型(例如Asset)。將字段添加到網站模型

我相信這基本上歸結爲將一個自定義字段添加到sites.models.Site模型。可能嗎?怎麼樣?

+0

爲什麼要該字段屬於Site模型?只需將該字段添加到資產,然後從網站您可以訪問反向關係。 – petkostas 2015-04-03 08:36:17

+0

這將是相反的關係。我需要從「資產」到「網站」的一對多關係,即可以在不同的網站中使用相同的資產。 – 2015-04-03 09:03:36

回答

2

當您創建的網站比如一個外鍵的Site模型,可以will be available自動:

site.asset_set.all() 

你甚至可以爲更多的可讀性提供related_namebackward relation

class Asset(models.Model): 
    site = models.ForeignKey(Site, related_name='assets') 

... 

site.assets.all() 
+0

這就是我假裝的反向關係。然而,這個特定的公式會返回這個錯誤:「core.Asset.site:(fields.E300)Field定義了一個與模型'Site'的關係,它或者沒有安裝,或者是抽象的。」 – 2015-04-03 09:05:39

+1

當前版本的django默認不啓用'Sites'框架。你必須自己啓用它:https://docs.djangoproject.com/en/1.7/ref/contrib/sites/#enabling-the-sites-framework – catavaran 2015-04-03 09:26:24

+0

好的,我發現該錯誤的來源,'Django .contrib.sites'應用程序在'settings.py'中被註釋掉了。 – 2015-04-03 09:27:14