首页 > 解决方案 > 如何扩展 Django Admin 模型 readonly_fields 而不必指定所有模型字段(但仍然可以看到它们)

问题描述

在 Django Admin 模型中,如果我不提供fieldsreadonly_fields元组,它将显示模型的默认字段。

但是如果我想添加一个计算字段,比如:

class SomeModelAdmin(admin.ModelAdmin):
    readonly_fields = ('get_calculated_field',)
    fields = ('get_calculated_field',)

然后它将覆盖其所有字段并仅显示此字段。

有没有办法扩展SomeModel字段并在其上添加计算字段,以便不必将模型的所有现有字段添加到元组中?

标签: djangodjango-admin

解决方案


仅添加readonly_fields设置(而不是设置fields)。这将导致它包含所有默认字段以及计算出的字段:

class SomeModelAdmin(admin.ModelAdmin):
    readonly_fields = ('get_calculated_field',)
    # Note: no 'fields = ...' setting here

推荐阅读