Python 在Django管理控制台中显示属性的勾号和叉号图标

Python 在Django管理控制台中显示属性的勾号和叉号图标,python,django,django-admin,Python,Django,Django Admin,在Django管理中,如果字段是BooleanField或NullBooleanField,Django将显示一个漂亮的“开”或“关”图标,而不是True或False 现在,我的模型中没有布尔字段,因为我有一个属性fior,我想显示图标,但当我尝试这样做时,Django尖叫道,“SomeAdmin.list\u filter[0]”指的是“is\u activated”,而不是指字段。 是否有可能显示这些漂亮的小图标为这个领域没有黑客Django太多 谢谢您不想使用列表过滤器。你要找的房产是。文

在Django管理中,如果字段是BooleanField或NullBooleanField,Django将显示一个漂亮的“开”或“关”图标,而不是True或False

现在,我的模型中没有布尔字段,因为我有一个属性fior,我想显示图标,但当我尝试这样做时,Django尖叫道,
“SomeAdmin.list\u filter[0]”指的是“is\u activated”,而不是指字段。

是否有可能显示这些漂亮的小图标为这个领域没有黑客Django太多


谢谢

您不想使用
列表过滤器
。你要找的房产是。文档提供了一个示例,说明如何创建在显示中表现为布尔值的列。简而言之,您可以这样做:

  • 在类中创建一个方法:

    def is_activated(self)
        if self.bar == 'something':
            return True
        return False
    
  • .boolean
    方法属性直接添加到激活的
    方法下方:

    is_activated.boolean = True
    
  • 将该方法作为字段添加到
    列表\u显示中

    类MyAdmin(模型管理员): 列表显示=['name','is\u activated']

  • 您会注意到列名现在可能是“已激活”或类似的内容。如果要更改列标题,请使用
    short\u description
    method属性:

    is_activated.short_description = "Activated"
    

  • 我要补充的是,像这样的方法属性是我的一个魅力所在,请看我的相关问题:嗨,Jordan,我做到了,但我想知道我是否必须在管理类中为模型类中的每个自定义属性设置一个方法?
    已激活
    已在我的模型中声明。谢谢。它们可以在您的模型或
    ModelAdmin
    类中声明。我链接到的文档实际上说明了这一点。派对有点晚了,但是
    def被激活(self):return self.bar==“something”
    稍微短了一点:)