我有一个表格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未定义。
问题:问题是什么以及如何使其发挥作用?
答案 0 :(得分:2)
您是否真的需要在表单启动后分配值?根据您的问题描述,在我看来,您只想设置在字段中输入的初始值。
通常在标准Django字段中,您将使用initial
参数,但我检查了django-money
的源代码,似乎您需要default
和default_currency
个参数。尝试这样的事情:
priceperunit = MoneyField(default=value, default_currency=currency)