Django Admin Cookbook-11如何显示计算出的布尔字段的“开”或“关”图标

11.如何显示计算出的布尔字段的“开”或“关”图标?

在上一章中,如何对计算字段启用过滤?,我们添加了如下一个布尔类型的字段:

def is_very_benevolent(self, obj):
    return obj.benevolence_factor > 75

后台显示如下:

Django Admin Cookbook-11如何显示计算出的布尔字段的“开”或“关”图标

该is_very_benevolent字段显示字符串True和False,这与内置的BooleanFields显示开和关指示符不同。要解决此问题,我们需要为该字段添加一个boolean属性。对管理模型进行修改如下:

@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin):
    list_display = ("name", "is_immortal", "category", "origin", "is_very_benevolent")
    list_filter = ("is_immortal", "category", "origin", IsVeryBenevolentFilter)
    def is_very_benevolent(self, obj):
        return obj.benevolence_factor > 75
    is_very_benevolent.boolean = True

修改后,管理后台显示如下:

Django Admin Cookbook-11如何显示计算出的布尔字段的“开”或“关”图标

返回目录

上一篇:Python基础函数笔记(1)


下一篇:python String(字符串)