Django - 动态设置list_display的内容(管理视图)

时间:2011-08-24 20:40:56

标签: django django-admin

每次过滤模型时,是否有办法为某些模型重置list_display(在管理视图中)的内容? (这样不同对象的过滤会在显示表中显示不同数量的列。)


例如:

我的django应用程序中有三个模型:ChildFamilyPetChild有一个Family的外键,Pet也有一个Family的外键。

现在,在Child的管理员视图中,我希望能够按Family进行过滤,过滤后,该表将显示子项的名称和每个名称。他的家人拥有的宠物。这样,显示的表中的列数会根据完成过滤的Family对象的宠物数量而变化。

感谢。

1 个答案:

答案 0 :(得分:1)

list_display在admin.py中设置,需要重新启动服务器才能生效。因此,它无法即时修改。

此外,Django似乎不支持以这种方式显示ManyToMany字段,因此您无法在列表视图中“开箱即用”显示宠物名称。根据{{​​3}}:

  
    
      

如果您想这样做,请为您的模型提供自定义方法,并将该方法的名称添加到list_display。