1

我正在为一个模型写一个管理员。有一个名为的列modbus_address_mapping_valid,它不是这个模型的成员。只有两个结果。它如何在页面中显示是/否图标

def modbus_address_mapping_valid(self,obj):
    try:
        mapping_valid = models.ModbusAddressMapping.objects.filter(object_id=obj.id)[0].valid
    except Exception:
        mapping_valid = False
    if mapping_valid:
        return u'<img src="/static/admin/img/icon-no.gif" alt="False">'
    else:
        return u'<img src="/static/admin/img/icon-no.gif" alt="False">'
modbus_address_mapping_valid.short_description = 'Modbus_mapping_validate_flag'

在此处输入图像描述

4

1 回答 1

4

检查文档,正如它所说

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

所以你要

def modbus_address_mapping_valid(self,obj):
    try:
        return models.ModbusAddressMapping.objects.filter(object_id=obj.id)[0].valid
    except Exception:
        return False
modbus_address_mapping_valid.short_description = 'Modbus_mapping_validate_flag'
modbus_address_mapping_valid.boolean = True

通常,如果您想呈现某些 HTML 片段,就像在当前代码中那样,您需要allow_tags(在同一个文档中找到它,就在关于 的描述上方boolean

于 2013-04-28T11:47:32.637 回答