django:创建通用表单完成页面

时间:2011-05-01 17:12:36

标签: python django django-forms

我的应用程序中有多个表单,就像用户完成后的所有表单一样,我想将它们重定向到表单完成页面,表单的详细信息会在提交后显示。

现在,假设我的表单都具有不同的属性,我如何创建一个公共视图和显示模板,这样我就不必重新创建它们,因为除了表单的细节之外它们都是相似的显示?

1 个答案:

答案 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 %}