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

Posted

技术标签:

【中文标题】在 Django 管理控制台中显示属性的勾号和十字图标【英文标题】:Display tick and cross icons for a property in the Django administration console 【发布时间】:2011-11-20 09:54:49 【问题描述】:

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

现在,我的模型中实际上并没有 BooleanField,因为我确实有一个我想显示图标的属性 fior,但是当我尝试这样做时,Django 尖叫 'SomeAdmin.list_filter[0]' refers to 'is_activated' which does not refer to a Field.

是否可以在不过多破解 Django 的情况下为该字段显示那些漂亮的小图标。

谢谢

【问题讨论】:

【参考方案1】:

您不想使用list_filter。您正在寻找的物业是list_display。该文档提供了一个示例,说明如何创建一个在显示中表现得像布尔值的列。简而言之,您可以这样做:

    在类中创建一个方法:

    def is_activated(self)
        if self.bar == 'something':
            return True
        return False
    

    is_activated 方法的正下方添加.boolean 方法属性:

    is_activated.boolean = True
    

    将方法添加为list_display中的字段:

    类 MyAdmin(ModelAdmin): list_display = ['name', 'is_activated']

    您会注意到列名现在可能是“已激活”或类似的名称。如果要更改列标题,请使用short_description 方法属性:

    is_activated.short_description = "Activated"
    

【讨论】:

我会补充一点,像这样的方法属性是我的魅力所在,请参阅我的相关问题:***.com/questions/7337681/method-attributes-in-django 嗨乔丹,这样做了,但我想知道我的模型类中的每个自定义属性是否必须在我的管理类中有一个方法? is_activated 已在我的模型中声明。谢谢。 它们可以在您的模型或ModelAdmin 类中声明。我链接到的文档实际上说明了这一点。 聚会有点晚了,但def is_activated(self): return self.bar == 'something' 有点短:)

以上是关于在 Django 管理控制台中显示属性的勾号和十字图标的主要内容,如果未能解决你的问题,请参考以下文章

XCTests 过早取消

复选框属性选中为真,但不显示勾号

如何在 Django 管理页面中显示外键的属性

django-xadmin后台列表页勾选复选框怎么打开?

pycharm 如何输出图

用单片机设计制作一个模拟的十字路口交通信号灯控制系统。