Django Admin如何在查看单个条目时显示计算属性?
解决方案
要让original_my_field在Django Admin的单个条目详情页中显示,只需修改对应的ModelAdmin类配置,步骤如下:
- 声明只读字段:由于
original_my_field是类属性(@property),无法被编辑,需要将其加入readonly_fields列表,告诉Django Admin这是一个可展示的只读字段。 - 配置详情页字段:将
original_my_field添加到fields或fieldsets中,指定它在详情页的显示位置。
代码示例
假设你的模型是YourModel,对应的ModelAdmin配置如下:
from django.contrib import admin from .models import YourModel @admin.register(YourModel) class YourModelAdmin(admin.ModelAdmin): # 列表页保持显示短版本字段 list_display = ['short_my_field', 'other_field1', 'other_field2'] # 声明original_my_field为只读字段 readonly_fields = ['original_my_field'] # 配置详情页要显示的字段,按需添加其他字段 fields = ['original_my_field', 'other_field1', 'other_field2']
如果需要对详情页字段分组展示,可以用fieldsets替代fields:
@admin.register(YourModel) class YourModelAdmin(admin.ModelAdmin): list_display = ['short_my_field', 'other_field1', 'other_field2'] readonly_fields = ['original_my_field'] fieldsets = ( ('基础信息', { 'fields': ('other_field1', 'other_field2') }), ('完整内容', { 'fields': ('original_my_field',) }), )
这样配置后,列表页只会显示short_my_field的短版本内容,点击进入单个条目详情页时,就能看到完整的original_my_field内容了。
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

