1
是否可以在django admin中顯示非模型字段?Django Admin。顯示非模型字段
例如,我有模型:
class TestModel(models.Model):
value = models.DecimalField(max_digits=5, decimal_places=2)
在Django管理我想顯示自定義字段 「係數1」,「係數2」這不是一個模型字段,因此我不希望將其值保存在數據庫中。這個係數將被用來計算模型的「值」字段。
使用某種算法生成係數。 (例如,我們有模型CoefficientGenerator來保存它的名稱和值)。
這個字段是動態生成的,所以我不能在模型體中聲明它。但用戶必須有 編輯係數的可能性,然後才能使用django admin保存實例。
我試圖重寫方法get_fieldsets中的ModelAdmin:
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
而且還覆蓋初始化在我的自定義管理形式:
def __init__():
...
for c in CoefficientGenerator.objects.all():
field = forms.CharField(required=False, widget=forms.Textarea, label=c.name)
self.fields[c.name] = field
但它沒有爲我工作。我得到了錯誤: 未知字段(s)(....)指定爲TestModel
謝謝。
我已經爲了減少誤解編輯的問題。我無法使用字段聲明,因爲字段是動態生成的。 – 2014-10-06 20:23:58