如何在django中修改绑定表单中字段的绑定值?

如何在django中修改绑定表单中字段的绑定值?,django,Django,我重写表单的\uuuu init\uuuu方法。 我可以通过执行以下操作来设置初始值: self.fields['fieldname'].initial = .... 但考虑到这是必然的,调用上述命令没有任何效果。 我试着这样做: self.fields['fieldname'].bound_data = .... 但这是行不通的。 有办法吗?您可以更新表单的数据 self.data['fieldname'] = new_value bound\u data是一个方法,而不是一个属性,因此

我重写表单的
\uuuu init\uuuu
方法。 我可以通过执行以下操作来设置初始值:

self.fields['fieldname'].initial = ....
但考虑到这是必然的,调用上述命令没有任何效果。 我试着这样做:

self.fields['fieldname'].bound_data = ....
但这是行不通的。
有办法吗?

您可以更新表单的
数据

self.data['fieldname'] = new_value
bound\u data
是一个方法,而不是一个属性,因此不能在那里设置值

request.GET
request.POST
是不可变的,除非您创建了
copy()
。您可以在
\uuuu init\uuuu
方法中进行复制,或者在绑定表单之前进行复制

data = request.POST.copy()
form = MyForm(data=data)

我尝试了这个,它抛出了一个错误:
这个QueryDict实例是不可变的
您需要复制
QueryDict
,然后更改它。我已经更新了我的答案。看起来像是
self。数据也不可变。按照您的建议复制一份
request.POST
。@mgalgs
self.data
是您构建表单时使用的数据。只有使用不可变对象,如
request.POST
,它才是不可变的。谢谢你的解释。你为什么要修改绑定的数据?在大图中,我使用的是formwizard。如果上一个表单的选择已更改;我想用新数据预先填充下一个表单。