我们有表单cleaning_data和表单实例,如果我更喜欢重新显示表单并且不知道如何更新建议的属性,我不知道django使用了什么。
计划在验证后执行一些业务逻辑并重新显示它。
if formset.is_valid():
#do something with forms in formset and redisplay it.
#maybe, alter forms data
return render(.....)
如何更改表单值并在验证后将其重新显示给用户。 我看到的所有示例都会更改表单实例的值,然后将其保存到db。我希望在更改后将其显示给用户。
我的真实代码,简化。
这不起作用。
if formset.is_valid():
formset.forms[0]['price'] = 15
return render(.....)
这也不起作用。
if formset.is_valid():
setattr(formset.forms[0],'price',15)
return render(.....)
这也不起作用。
if formset.is_valid():
setattr(formset.forms[0].instance,'price',15)
return render(.....)
它们都渲染相同,而不是price = 15 formsets。
更新-------->
if formset.is_valid():
formset.data['formset_prefix-0-price'] = 15
这使得formset的第一个表单以15的价格呈现,但由于实例未被修改,因此当我保存表单时,它将以之前的值保存。
在is_valid之后,我需要一种正确的方法来修改formset。重新表达表格或之后保存。