5.布尔的计算字段显示 ‘on’ 或者 ‘off’ 图标

在之前的章节 如何让计算字段可过滤中,你添加了一个 布尔的字段

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

就像这样: 5.布尔的计算字段显示 ‘on’ 或者 ‘off’ 图标 - 图1 这里的is_very_benevolent字段展示了 True 或者False, 不像内置的布尔字段展示on 或者 off 标识符, 为了解决这个问题 你可以在你的方法中添加一个boolean属性,你最后的modeladmin像这样:

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

你的admin管理页面像这样: 5.布尔的计算字段显示 ‘on’ 或者 ‘off’ 图标 - 图2