Django使用GET变量将无效表单重定向到同一页面

时间:2013-02-05 22:52:52

标签: django django-views

您好我有一个Django视图,对应于这样的网址:

<my_site>/project_info/?pitched=true

我以正常方式验证此页面的表单:

form = ProjectInfoForm(request.POST or None)
if form.is_valid():
    # handle form
    ...

但是当表单返回时出现错误,它会在没有url的同一页面上结束(显然):

<my_site>/project_info/

我真的不想将pitched = true参数更改为捕获的url参数。重定向的最佳方法是什么,考虑到我不知道页面是否有这个GET变量?

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:2)

模板中的HTML是什么样的?尝试将表单上的action属性设置为""(它应该保留您的变量),如下所示:

<form action="" method="post">

答案 1 :(得分:1)

action=""诀窍有效。如果你想确定,你可以做类似

的事情
<form action="{% if request.GET.pitched %}?pitched={{ request.GET.pitched }}{% endif %}" method="post">