2016-05-12 62 views
0

我在這個形式的形式SOproduct2Form分配價值形式後Django的形式

我有一個字段priceperunit

它在我的模型定義如下

priceperunit = MoneyField(max_digits=10, decimal_places=2, default_currency='USD') 

我正在嘗試表單初始化後將其賦值爲默認值。 因爲形式是對象,而不是字典我不喜歡這樣

form = SOproduct2Form(instance = soproduct1) 
#form.priceperunit = 3 
form.priceperunit = soproduct1.product.defaultPrice 
#setattr(form, priceperunite, 5) 

我沒有得到任何錯誤,在輸出總是顯示爲0

我試圖與價值分配直接我得到同樣的發揮0.(請參閱註釋行) 使用setattr(也發表評論)時,出現priceperunit未定義的錯誤。

問題:什麼是問題以及如何使其工作?

+1

爲什麼你想這樣做後,它被初始化?爲什麼不通過'初始'字典或通過修改實例來傳遞它? –

+0

是的,它是偉大的想法,它的實際工作:) soproduct1.priceperunit = soproduct1.product.defaultPrice 形式= SOproduct2Form(例如= soproduct1) –

回答

2

您是否真的需要在表單啓動後指定值?根據您的問題描述,在我看來,您只是想設置在該字段中輸入的初始值。

一般在標準的Django字段你應該使用initial的說法,但我檢查的django-money源代碼,看來你需要defaultdefault_currency參數。試試這樣的:

priceperunit = MoneyField(default=value, default_currency=currency)

+0

是的,它是好主意,做它之前開始,你和丹尼爾提到。 由於每個產品都有默認價格,因此我會動態分配默認值 –