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

Django Admin问题:Inline未在list_display声明的字段显示,如何移除?

问题原因与解决方案

为什么会出现这个情况?

你这里踩了一个Django Admin的常见小坑:TabularInline(以及StackedInline)类并不支持list_display属性——这个配置是给ModelAdmin用的,用来控制列表页的显示字段。你在ClassificationInline里写的list_display完全没生效,Django根本不会读取这个设置。

那dat_emission为什么会自动显示呢?因为Django的Inline组件默认会展示模型中所有可编辑的非父关联字段。你的dat_emission是普通DateField(没设置auto_now/auto_now_add),属于可编辑字段,所以被默认展示;而自动生成的id主键,Inline默认不会显示,除非你主动指定要包含它。

如何移除dat_emission列?

有两种简单的解决方式:

方法1:明确指定要显示的字段

把ClassificationInline里的list_display替换成fields属性,直接列出你想展示的字段:

class ClassificationInline(admin.TabularInline):
    model = Classification
    # 用fields指定要显示的字段,替代无效的list_display
    fields = ('rule', 'atribute', 'valid_clas')

方法2:排除不需要的字段

如果不想逐个列字段,也可以用exclude属性直接排除dat_emission:

class ClassificationInline(admin.TabularInline):
    model = Classification
    # 排除dat_emission字段,不展示它
    exclude = ['dat_emission']

两种方法都能实现你的需求——只显示rule、atribute、valid_clas三个字段,移除dat_emission列。

内容的提问来源于stack exchange,提问作者Felipe Hogrefe Bento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:47:51