每次过滤模型时,是否有办法为某些模型重置list_display
(在管理视图中)的内容? (这样不同对象的过滤会在显示表中显示不同数量的列。)
例如:
我的django应用程序中有三个模型:Child
,Family
,Pet
。 Child
有一个Family
的外键,Pet
也有一个Family
的外键。
现在,在Child
的管理员视图中,我希望能够按Family
进行过滤,过滤后,该表将显示子项的名称和每个名称。他的家人拥有的宠物。这样,显示的表中的列数会根据完成过滤的Family
对象的宠物数量而变化。
感谢。
答案 0 :(得分:1)
list_display
在admin.py中设置,需要重新启动服务器才能生效。因此,它无法即时修改。
此外,Django似乎不支持以这种方式显示ManyToMany字段,因此您无法在列表视图中“开箱即用”显示宠物名称。根据{{3}}:
如果您想这样做,请为您的模型提供自定义方法,并将该方法的名称添加到list_display。