4

フォームを動的に生成します。

form = forms.Form()
form.fields['myname'] = forms.CharField(label=u'My Name')
...

次に、フォームを次のように表示します。

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

最初の行を次のように変更することで、バインドされたインスタンスを取得できました

form = forms.Form(request.POST)

動的フォームの生成を開始する前に。

ただし、動的フォーム生成コードをそのままにして、フォームを request.POST データに後でバインドする方法はありますか?

ありがとう

4

1 に答える 1

5

django/forms/forms.py を見ると、django がどのように機能するかがわかります。form.dataにフォームデータが保存されているようです。また、data が None でない場合、form.is_bound は true に設定されます。

使用してみてください:

form.data = request.POST.copy()
form.is_bound = True
于 2011-06-23T11:00:08.417 に答える