2

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

我也有一些逻辑如下检测POST

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

全选 在新窗口中打开

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

谢谢

4

3 回答 3

0

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

from django.shortcuts import redirect

def some_view(request):
    if request.method == 'POST':
        # do smth
        return redirect('/page-with-form/')
于 2013-02-04T13:43:27.830 回答
0

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

于 2013-02-04T13:35:59.033 回答
0

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

增加选择计数后,代码返回一个 HttpResponseRedirect 而不是普通的 HttpResponse。HttpResponseRedirect 接受一个参数:用户将被重定向到的 URL(在这种情况下,我们如何构造 URL,请参见以下几点)。

正如上面的 Python 注释所指出的,在成功处理 POST 数据后,您应该始终返回一个 HttpResponseRedirect。这个技巧不是特定于 Django 的。这只是很好的 Web 开发实践。

于 2013-02-04T13:38:55.233 回答