在django中提交表单后,使用参数重定向到主页

时间:2014-10-10 08:34:13

标签: python django python-2.7 django-1.4

我正在尝试添加使用django& amp;提交的学生的详细信息。 ' POST'方法。 提交后,我将详细信息保存在我的' py'文件。之后我想重定向到主页。 早些时候我用过

return render_to_response("home.html",{ "edit":0,"msg":'saved'}, context_instance=RequestContext(request))

但是在每次刷新主页时,它会将数据插入到表中。 然后我尝试使用" HttpResponseRedirect" ,但它不支持参数传递。 我该如何解决这个问题?

add.py

stud = student(name=request.POST['studname'])
stud.save()
return render_to_response("home.html",{ "edit":0,"msg":'saved'}, context_instance=RequestContext(request))

student.html

<form id = "addForm" name = "addForm" action = "" method = 'POST' >
<table>
 <tr>
   <td>Name.</td>
   <td><input type="text" name="studname" id="studname"></td> 
 </tr>
</table>
</form>

2 个答案:

答案 0 :(得分:4)

您应该查看Post/Redirect/Get

基本上,

  1. 确保您有一个处理帖子的POST方法
  2. 然后将用户重定向到特定页面。
  3. 然后有一个GET请求来提供该页面。
  4. 以下是您的想法:

    使用Django&#39; redirect

    def submitting_student(request):
       if request.method == "POST":
            stud = student(name=request.POST['studname'])
            stud.save()
            return redirect("home.html", { "edit":0, "msg":'saved' })
    
       return render_to_response("student.html")
    

    以下是PRG pattern

    相同主题的另一篇文章

答案 1 :(得分:0)

尝试在add.py

中检查请求是否为帖子

例如

msg = ""

   if request.method == "POST":
        stud = student(name=request.POST['studname'])
        stud.save()

        msg = "saved"

   return render_to_response("home.html",{ "edit":0,"msg":msg}, context_instance=RequestContext(request))