我有一個應用程序應該爲不同的網站提供服務。 Sites framework已經在那裏,但在這個應用程序中一些網站共享某些資產(CSS等)。因此,我希望有一個與Site
具有一對多關係的附加模型(例如Asset
)。將字段添加到網站模型
我相信這基本上歸結爲將一個自定義字段添加到sites.models.Site
模型。可能嗎?怎麼樣?
我有一個應用程序應該爲不同的網站提供服務。 Sites framework已經在那裏,但在這個應用程序中一些網站共享某些資產(CSS等)。因此,我希望有一個與Site
具有一對多關係的附加模型(例如Asset
)。將字段添加到網站模型
我相信這基本上歸結爲將一個自定義字段添加到sites.models.Site
模型。可能嗎?怎麼樣?
當您創建的網站比如一個外鍵的Site
模型,可以will be available自動:
site.asset_set.all()
你甚至可以爲更多的可讀性提供related_name
到backward relation:
class Asset(models.Model):
site = models.ForeignKey(Site, related_name='assets')
...
site.assets.all()
這就是我假裝的反向關係。然而,這個特定的公式會返回這個錯誤:「core.Asset.site:(fields.E300)Field定義了一個與模型'Site'的關係,它或者沒有安裝,或者是抽象的。」 – 2015-04-03 09:05:39
當前版本的django默認不啓用'Sites'框架。你必須自己啓用它:https://docs.djangoproject.com/en/1.7/ref/contrib/sites/#enabling-the-sites-framework – catavaran 2015-04-03 09:26:24
好的,我發現該錯誤的來源,'Django .contrib.sites'應用程序在'settings.py'中被註釋掉了。 – 2015-04-03 09:27:14
爲什麼要該字段屬於Site模型?只需將該字段添加到資產,然後從網站您可以訪問反向關係。 – petkostas 2015-04-03 08:36:17
這將是相反的關係。我需要從「資產」到「網站」的一對多關係,即可以在不同的網站中使用相同的資產。 – 2015-04-03 09:03:36