2016-10-31 10 views
0

私は、他のフィールドの中で動的に計算されるpriceプロパティを含むモデルを持っています。モデル管理ページにこのプロパティを表示したいと思います。だから私は、カスタムのModelFormを作成しました:モデルプロパティからDjango管理フォームに入力する方法は?

class ShipmentForm(forms.ModelForm): 
    price = forms.IntegerField() 

    class Meta: 
     model = models.Shipment 
     fields = [ 
      'title', 
      'price', 
     ] 

私はそのフォームでprice値を取得することはできませんが。ここで

は、私が管理パネルでフォームを変更する方法は次のとおりです。

class ShipmentAdmin(admin.ModelAdmin): 
    form = ShipmentForm 
+0

この質問のタイトルを更新することは、一般公開のフォームではなく、Djangoの管理者に関するものであることを反映する価値があります。 – nimasmi

答えて

1

ModelAdmin.readonly_fields(ジャンゴ1.10ドキュメントリンク)を参照してください。

読み取り専用フィールドは、モデルのフィールドのデータを表示するだけでなく、モデルのメソッドの出力やModelAdminクラス自体のメソッドを表示することもできます。

これはあなたがすることができることを意味します

class ShipmentAdmin(admin.ModelAdmin): 
    readonly_fields = ('price', 'something_else') 

    def something_else(self, instance): 
     # calculate something else here 
priceがモデル方式で

、そしてsomething_elseはModelAdminの方法です。

+0

この方法も必要ありません。 readonly_fieldsは、list_displayのように、モデルプロパティを直接使用することができます。 –

+0

ありがとうございました。 – nimasmi

関連する問題