You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin:如何在list_display中外键布尔字段显示勾选/叉号图标

问题:Django ModelAdmin list_display中外键布尔字段显示图标而非文本

在Django的ModelAdmin中,我希望在list_display里显示外键关联模型的BooleanField属性。该字段在自身模型的管理页面会正常显示勾选或叉号图标,但当我通过自定义方法在其他模型的管理页面引用这个属性时,list_display中只会显示True或False文本,而非对应的图标。请问该如何修改才能让它显示图标?

代码示例:

class ProofOfPaymentAdmin(admin.ModelAdmin):
    list_display = ('id', 'reference_number', 'user', 'is_subscribed',)

    def is_subscribed(self, obj):
        return obj.user.is_subscribed

解决方案

给自定义的is_subscribed方法添加boolean属性标记为布尔字段,Django Admin就会自动渲染对应的图标,同时还可以通过short_description设置列的显示名称:

修改后的代码:

class ProofOfPaymentAdmin(admin.ModelAdmin):
    list_display = ('id', 'reference_number', 'user', 'is_subscribed',)

    def is_subscribed(self, obj):
        return obj.user.is_subscribed
    # 标记为布尔类型,让Admin渲染勾选/叉号图标
    is_subscribed.boolean = True
    # 可选:设置列的显示名称
    is_subscribed.short_description = '是否订阅'

原理说明:
Django Admin会识别带有boolean=True属性的自定义方法,将其视为原生布尔字段处理,从而自动渲染对应的状态图标,和该字段在自身模型管理页面的显示效果完全一致。

内容的提问来源于stack exchange,提问作者Nikko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:52:43