Django-模式表单和页面重新加载重新提交

时间:2019-01-27 23:13:09

标签: django django-forms

我有一个联系方式表格。表单工作正常,但是页面重新加载会重新提交以前输入的值。

view.py

...
if request.POST:
    form = ContactForm(request.POST)
    if form.is_valid():
        entry = form.save()
        form = ContactForm()
        c.update(locals())
        return render(request, 'template.html', c )
...

template.html

<form action="." method="post" id="contact-form">
...
</form>

我试图清除GET请求中的表格。表单字段已清除,但这不会阻止重新加载页面上的提交。

else: #request.GET
    form = ContactForm()
    c.update(locals())
    return render(request, 'template.html', c )

我已经看到许多建议重定向的示例。我确实了解这种方法,但是在使用模式形式的情况下,我想避免重定向。

如何防止再次提交模态表格?重定向真的是唯一的方法吗?

1 个答案:

答案 0 :(得分:0)

解决方案似乎非常简单:

替换了此行...

return render(request, 'template.html', c )

...和下​​面的一个:

return HttpResponseRedirect(request.path_info)