В Django, как мне позднее связать несвязанную форму? - PullRequest
4 голосов
/ 10 марта 2011

Я генерирую форму динамически:

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)

прежде чем я начну генерировать динамическую форму.

Однако есть ли способ сохранить код генерации динамической формы как есть, а затем позднее связать форму с запросом. Данные POST?

Спасибо

1 Ответ

5 голосов
/ 23 июня 2011

Глядя в django / forms / forms.py, вы можете увидеть, как работает django.Похоже, что данные формы сохраняются в form.data.Кроме того, если данные не None, тогда для form.is_bound установлено значение true.

Попробуйте использовать:

form.data = request.POST.copy()
form.is_bound = True
...