9

我编写了自己在 list_display (管理类)中使用的方法,如下所示:

class MyClassAdmin(admin.ModelAdmin):

    list_display = ('my_own_method')

    def my_own_method(self, obj):
        if [condition]:       
            return True
        else: 
            return False

但是此值在列表中显示为文本(True 或 False),而不是像这样的默认 django 布尔图标: 在此处输入图像描述

我应该怎么做才能改变这种情况?

4

1 回答 1

12

将您的代码更改为以下内容:

class MyClassAdmin(admin.ModelAdmin):

    list_display = ('my_own_method')

    def my_own_method(self, obj):
        if [condition]:       
            return True
        else: 
            return False
    my_own_method.boolean = True

可以在以下文档中找到list_display

如果给定的字符串是模型的方法,ModelAdmin 或返回 True 或 False 的可调用对象,如果您为方法提供值为 True 的布尔属性,Django 将显示一个漂亮的“on”或“off”图标。

于 2012-07-09T10:20:50.390 回答