我自己的方法在list_display中使用,value作为布尔图标

时间:2012-07-09 10:16:54

标签: python django django-admin

我在list_display(admin class)中编写了自己的方法,如下所示:

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布尔图标: enter image description here

我该怎么做才能改变这个?

1 个答案:

答案 0 :(得分:10)

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

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上的documentation找到:

  

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