2014-12-02 48 views
0

我已經啓用了站點框架(包括中間件)並設置了兩個站點(ID = 1和ID = 2)。我的一個模型使用Site的外鍵。爲了討論各種情形,讓說,它看起來像這樣顯示所有模型實例,而不管django中的站點admin

class Person(models.Model): 
    name = models.CharField(max_length=20) 
    site = models.ForeignKey(Site) 
    on_site = CurrentSiteManager() 

在我的settings.py我有SITE_ID = 1

如果我在管理界面創建人的實例,其網站設置爲網站ID = 2時,它被創建,但它隱藏在當前的管理屏幕中。

這對我來說似乎違反直覺。我想用我的單個django管理屏幕來管理我的兩個網站。在我的list_display中,我有'網站',所以如果它向我展示了所有我知道與哪個網站有關的實例。

是否有某種方法可以確保在管理員屏幕中顯示模型的所有實例,而不考慮站點ID?

我不想登錄到兩個單獨的管理URL來管理所有模型實例。

回答

1

你實際上不需要CurrentSiteManager,只需通過ForeignKey將模型連接到Site Model,

from django.contrib.sites.models import Site 
class Person(models.Model): 
    name = models.CharField(max_length=20) 
    site = models.ForeignKey(Site) 
    on_site = models.ForeignKey(Site,related_name="site_users") 

和管理,你會看到一個下拉菜單選擇到Person應該屬於哪個網站。

不要忘記遷移模型,因爲你正在改變架構

+1

謝謝。我剛剛評論了CurrentSiteManager,現在它們出現了。很坦白地不知道爲什麼這是有效的。猜猜我需要更多地閱讀文檔。 – BoomShaka 2014-12-02 21:35:38

相關問題