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

Dav*_*lva 8 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
Run Code Online (Sandbox Code Playgroud)

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

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

Sim*_*ser 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
Run Code Online (Sandbox Code Playgroud)

可在中找到文件list_display:

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