Python Django管理员。不显示模型字段
是否可以在django admin中显示非模型字段 例如,我有一个模型: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
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')
为了减少误解,我对问题进行了编辑。我不能使用字段声明,因为字段是动态生成的。