Python Django管理员。不显示模型字段

Python Django管理员。不显示模型字段,python,django,django-admin,Python,Django,Django Admin,是否可以在django admin中显示非模型字段 例如,我有一个模型: class TestModel(models.Model): value = models.DecimalField(max_digits=5, decimal_places=2) 在Django admin中,我想显示自定义字段 “系数1”、“系数2”不是一个模型字段,因此我不想将其值保留在数据库中。该系数将用于计算模型的“值”字段 使用某种算法生成系数。(例如,我们使用model CoefficientGe

是否可以在django admin中显示非模型字段

例如,我有一个模型:

class TestModel(models.Model):
     value = models.DecimalField(max_digits=5, decimal_places=2)
在Django admin中,我想显示自定义字段 “系数1”、“系数2”不是一个模型字段,因此我不想将其值保留在数据库中。该系数将用于计算模型的“值”字段

使用某种算法生成系数。(例如,我们使用model CoefficientGenerator保留其名称和值)

这些字段是动态生成的,所以我不能在模型体中声明它。但用户必须拥有 可以在使用django admin保存实例之前编辑系数

我试图覆盖ModelAdmin中的方法get_字段集:

class TestModelAdmin(ModelAdmin):
    def get_fieldsets(self, request, obj=None):
        fieldsets = super(ProductAdmin, self).get_fieldsets(request, obj)
        for c in CoefficientGenerator.objects.all():
            fieldsets[0][1]['fields'].append(c.name)
        return fieldsets
还要在我的自定义管理表单中覆盖init

def __init__():
    ...
    for c in CoefficientGenerator.objects.all():
        field = forms.CharField(required=False, widget=forms.Textarea, label=c.name)
        self.fields[c.name] = field
但这对我不起作用。我得到了一个错误: 为TestModel指定的未知字段(..)


谢谢。

我不太清楚你到底想要什么。但是,如果字段值不在admin中更改,我想您只是想在那里显示它,对吗

在这种情况下,您可以在模型中定义一个方法,说“name_language()”,然后通过列表显示:

list_display = ('field1', 'field2', 'name_language')

为了减少误解,我对问题进行了编辑。我不能使用字段声明,因为字段是动态生成的。