在管理员界面显示自定义方法字段

0 投票
1 回答
2000 浏览
提问于 2025-04-17 03:15

假设我有一个Django模型,它的一个字段是一个数字列表。我使用模型中的自定义方法来计算这个字段的一些统计数据。这些模型在管理面板中作为InlineAdminModel“嵌入”在一个父对象中。有没有办法在修改父模型时,在管理面板中显示这个自定义方法的值呢?这显然只适用于那些已经创建的模型。

例如:(省略)

class ListModel(models.Model):
    number_list = models.CommaSeparatedIntegerField(max_length = 20)
    def sum(self):
        return sum([int(s) for s in number_list.split(',')]) 

class ListModelAdmin(admin.TabularInline):
    model = ListModel
    list_display = ('sum') #works fine for displaying the ListModel 
    fields = ['number_list', 'sum'] #Obviously Doesn't work, but demonstrates
    #what I want to accomplish. sum wouldn't be settable but displayed when 
    #number_list is updated

1 个回答

3

fields 是用来设置可以编辑的字段的。如果你想让某些字段只读,也就是不能编辑的话,可以使用 readonly_fields

撰写回答