我的应用程序中有多个表单,就像用户完成后的所有表单一样,我想将它们重定向到表单完成页面,表单的详细信息会在提交后显示。
现在,假设我的表单都具有不同的属性,我如何创建一个公共视图和显示模板,这样我就不必重新创建它们,因为除了表单的细节之外它们都是相似的显示?
答案 0 :(得分:1)
根据此Django: How do I redirect a post and pass on the post data,您无法使用帖子数据重定向,因此您必须1)在与表单相同的URL处显示成功页面,或者2)将所有变量放入重定向URL
如果您可以在与表单相同的URL处显示成功,即/ my-form / not / my-form / success /,那么您可以改变canonical form processing view:
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# ...
return render_to_response('form_success.html', {'form' : form,} )
else:
form = ContactForm()
return render_to_response('contact.html', {'form': form,})
然后在模板中你可以做到:
<h3>Success! You submitted:</h3>
{% for field in form %}
{{field.label}}: {{field.data}}
{% endfor %}