在Django中,如何延迟绑定未绑定的表单?

Raj*_*aja 4 dynamic late-binding django-forms

我动态生成一个表单:

form = forms.Form()
form.fields['myname'] = forms.CharField(label=u'My Name')
...
Run Code Online (Sandbox Code Playgroud)

然后显示表单:

buf = '....<form action="." method="POST">...' + form.as_p() + '...'
t = Template(buf)
v = RequestContext(request, {'form': form})
html = t.render(v)
...
Run Code Online (Sandbox Code Playgroud)

通过将第一行更改为,我可以得到一个绑定的实例

form = forms.Form(request.POST)
Run Code Online (Sandbox Code Playgroud)

在我开始生成动态表单之前.

但是,有没有办法保持动态表单生成代码,然后将表单绑定到request.POST数据?

谢谢

Phi*_*rez 5

查看django/forms/forms.py,您可以看到django的工作原理.似乎表单数据保存到form.data.此外,如果数据不是None,则将form.is_bound设置为true.

尝试使用:

form.data = request.POST.copy()
form.is_bound = True
Run Code Online (Sandbox Code Playgroud)