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

Django admin配置多个只读字段仅单个正常显示问题

问题根因

Python类属性不支持分次追加赋值,你代码中对exclude、readonly_fields两个属性分别做了两次独立赋值,后一次赋值会直接覆盖前一次的配置:

  • 两次定义exclude,最终仅downtime被加入排除列表,第一次配置的est_completion_time被直接覆盖
  • 两次定义readonly_fields,最终仅placeholder_2被加入只读字段列表,第一次配置的placeholder_1被覆盖,因此页面只会显示"New row 2"。
修复方法

把同个配置项的所有值都放进同一个列表,一次性赋值即可,修正后的完整配置:

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):

    form = JBForm

    # 所有需要隐藏的原模型字段统一放在exclude列表中
    exclude = ['est_completion_time', 'downtime']

    # 所有需要展示的自定义只读字段统一放在readonly_fields列表中
    readonly_fields = ['placeholder_1', 'placeholder_2']

    @admin.display(description="New row 1")
    def placeholder_1(self, obj):
        return obj.est_completion_time

    @admin.display(description='New row 2')
    def placeholder_2(self, obj):
        return obj.downtime

修改完成后重启Django开发服务,两个自定义只读字段就会同时正常展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:48:10