2016-05-12 60 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

是的,它是好主意,做它之前开始,你和丹尼尔提到。 由于每个产品都有默认价格,因此我会动态分配默认值 –