2011-08-24 189 views
1

每次模型過濾時,是否有方法可以重置某個模型的list_display(在管理視圖中)的內容? (這樣不同對象的過濾會在顯示錶中給出不同數量的列)。Django - 動態設置list_display(管理員視圖)的內容


例如:

我在我的Django應用程序。三種模式:ChildFamilyPetChild有一個前導密鑰Family,而Pet也有一個前導密鑰Family

現在,在Child的管理員視圖中,我希望能夠通過Family進行過濾,並且在過濾之後,表格將顯示孩子的姓名以及其家人擁有的每隻寵物的名稱。這樣,顯示錶中的列數根據過濾完成的Family對象的寵物數量而改變。

謝謝。

回答

1

list_display在admin.py中設置,並且需要重新啓動服務器才能生效。因此,它不能在運行中修改。

此外,Django似乎不支持以這種方式顯示ManyToMany字段,因此您無法在「開箱即用」列表視圖中顯示寵物名稱。據the documentation

如果您想這樣做,但是,給你的模型的自定義方法,並添加方法的名字list_display。