在表单启动后为django表单赋值

时间:2016-05-12 17:39:58

标签: python django forms

我有一个表格SOproduct2Form

在这种形式中我有一个field 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 :(得分:2)

您是否真的需要在表单启动后分配值?根据您的问题描述,在我看来,您只想设置在字段中输入的初始值。

通常在标准Django字段中,您将使用initial参数,但我检查了django-money的源代码,似乎您需要defaultdefault_currency个参数。尝试这样的事情:

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