我有模型,其中包含动态计算的price
属性。我想在模型管理页面中显示此属性。所以我创建了自定义ModelForm:
class ShipmentForm(forms.ModelForm):
price = forms.IntegerField()
class Meta:
model = models.Shipment
fields = [
'title',
'price',
]
但是,我无法以该表格获得price
价值。
以下是我在管理面板中更改表单的方法:
class ShipmentAdmin(admin.ModelAdmin):
form = ShipmentForm
答案 0 :(得分:2)
请参阅ModelAdmin.readonly_fields(Django 1.10 docs链接)。
只读字段不仅可以显示模型字段中的数据,还可以显示模型方法的输出或ModelAdmin类本身的方法。
这意味着您可以:
class ShipmentAdmin(admin.ModelAdmin):
readonly_fields = ('price', 'something_else')
def something_else(self, instance):
# calculate something else here
price
是模型方法,something_else
是ModelAdmin方法。