我想在Django管理页面(change_list.html)中根据模型中名为status的字段高亮显示行(设置backgorund颜色)。最好的方法是什么?
我有三种状态。开放、活动、关闭。我想与开放行是绿色,积极的是橙子和关闭是红色。
我已经找到了documentation about changing the templates所以,但不知道如何检查状态的颜色行。
我想在Django管理页面(change_list.html)中根据模型中名为status的字段高亮显示行(设置backgorund颜色)。最好的方法是什么?
我有三种状态。开放、活动、关闭。我想与开放行是绿色,积极的是橙子和关闭是红色。
我已经找到了documentation about changing the templates所以,但不知道如何检查状态的颜色行。
4条答案
按热度按时间oxiaedzo1#
我错了,还有另一种选择,只使用Django管理员应用程序。
在应用的www.example.com中admin.py,您可以为表格单元格的内容定义渲染器。以下是我的电影库的变体:
在这里,我创建了一个字段名
film_status
,它在Film模型中不存在,并将其定义为FilmAdmin
的方法。它会为每一行传递该项。我不得不告诉渲染器allow_tags
,这告诉管理应用程序不要“安全”HTML内容。不过,这不会填充整个单元格,因为单元格本身有一些填充。只有您的应用允许填充的单元格部分(由管理员的样式表定义)将被填充。但对我来说已经足够了。
这就对了两种完全不同但很有用的装饰Django管理列表中单元格内容的技术。
ca1c2owp2#
看看django-liststyle,正是你所追求的。
dvtswwa33#
事实证明,定制change_list_results. html和相关的生成器是一件相当麻烦的事情。我想提出一个完全不同的解决方案:为您的应用程序添加change_list.html,并使用JavaScript来实现您想要的效果。
我也有和你一样的问题。对于一个电影库,我需要知道电影制作人的注册是否“活跃”或其他什么。以下是我的全部重写:
这个文件是
${TEMPLATE_DIR}/admin/films/film/change_list.html
。Django的结果列表是id'dresult_list
,我在这里所做的就是用不同的背景风格装饰第7列,如果列的内容不符合我的喜好。管理员已经提供了jQuery,因此不需要对应用程序或管理员进行额外的更改即可实现此功能。
wbgh16ku4#
在my_admin.js中: