Django,在列表显示中更改布尔小部件的颜色

时间:2015-02-04 23:12:10

标签: django-admin django-models django-widget

我有一个Django布尔字段,显示为漂亮的' on' '关闭'列表中的按钮显示(绿色和红色)。是否有可能有第三个状态,如黄色或蓝色,表明状态未知。

PS:我已经阅读了有关NullBooleanField的内容,但这并没有改变我的小部件。 我需要的是,Django根据我的布尔字段的第三个值显示第三种颜色。

1 个答案:

答案 0 :(得分:3)

此规则为buried pretty deep in the Django admin app

def _boolean_icon(field_val):
    icon_url = static('admin/img/icon-%s.gif' %
                      {True: 'yes', False: 'no', None: 'unknown'}[field_val])
    return format_html('<img src="{}" alt="{}" />', icon_url, field_val)

这是called in admin/utils.py,因此将其更改为支持多个值可能会非常棘手。

幸运的是,它确实处理了NullBooleanField并且有一个&#34;未知值的图像&#34;如下所示:

  

icon-unknown.gif icon-unknown.gif

     

icon-yes.gif icon-yes.gif

     

icon-no.gif icon-no.gif