模态形式和Django URL,如何工作?

时间:2018-07-14 08:28:20

标签: django twitter-bootstrap modal-dialog

html

<form action="{% url 'sp_feedback' %}" method="post">

url

url(r'^feedback/$', views.post_feedback, name="sp_feedback"),

观看次数:

 return HttpResponseRedirect("")

在使用模式形式时,在单击“提交”后如何返回页面?

在我当前的设置中,浏览器没有重定向。我对放在网址正则表达式中的内容完全感到困惑。

1 个答案:

答案 0 :(得分:0)

  

在我当前的设置中,浏览器没有重定向。

因为您要重定向到一个空URL:

return HttpResponseRedirect("")

您必须重定向到页面的网址:

return HttpResponseRedirect('/feedback/')

但是使用redirect()快捷键是更好,更方便的方法。因为您可以传递该URL的名称,所以Django会自动将其重定向到关联的URL。

示例:

return redirect('sp_feedback')

避免在应用程序中使用硬编码的网址是一种好习惯。


更新

由于您提到此表单出现在每个页面上,并且您希望将用户重定向回该页面,所以这里是一个解决方案:

在表单视图中使用request.META['HTTP_REFERER']获取引荐页,然后使用该值进行重定向:

redirect_to = request.META.get('HTTP_REFERER', '/') # if HTTP-Referer header is not present, just redirect to homepage
return HttpResponseRedirect(redirect_to)