在网页中清除POST

时间:2013-02-04 13:31:36

标签: python django web-applications

我有一个小的python / django网站,我正在使用html表单发布一些信息,但是烦人的是这些信息存储在POST中,所以当用户刷新时说IE / chrome会得到关于页面的警告消息包含POST数据。如何在处理后清除POST数据,以便用户可以刷新而不会看到此警告消息?

我还有一些检测POST的逻辑如下

 if request.method == "POST":
     do something

全选 在新窗口中打开

当我实际发布表单时,这很好,但是当我刷新页面时,它还会检测POST并执行我现在不想做的逻辑。 我怎么能解决这个问题?

由于

3 个答案:

答案 0 :(得分:0)

表单验证后有效。然后重定向到其他页面,例如成功页面或重定向到同一视图。重定向将避免Double Form Submition problem。阅读更多相关信息here

答案 1 :(得分:0)

返回POST请求的响应时使用HttpResponseRedirect。这在tutorial 4中解释为

在递增选择计数后,代码返回HttpResponseRedirect而不是正常的HttpResponse。 HttpResponseRedirect只接受一个参数:用户将被重定向到的URL(在这种情况下,请参阅以下关于我们如何构造URL的内容)。

正如上面的Python评论指出的那样,在成功处理POST数据之后,你应该总是返回一个HttpResponseRedirect。这个提示不是Django特有的;它只是很好的Web开发实践。

答案 2 :(得分:0)

正如Rohan所说,你应该使用HttpResponseRedirect。但您也可以使用快捷方式:

from django.shortcuts import redirect

def some_view(request):
    if request.method == 'POST':
        # do smth
        return redirect('/page-with-form/')