【发布时间】:2015-01-27 07:29:28
【问题描述】:
我希望当用户在我的视图中做某事时,我将他重定向到另一个网站,并使用一些参数作为 POST 方法,就像你提交表单时一样。 我认为它可能是这样的:
return HttpResponseRedirect("url","parameters")
我该怎么做?
【问题讨论】:
标签: python django redirect post httpresponse
我希望当用户在我的视图中做某事时,我将他重定向到另一个网站,并使用一些参数作为 POST 方法,就像你提交表单时一样。 我认为它可能是这样的:
return HttpResponseRedirect("url","parameters")
我该怎么做?
【问题讨论】:
标签: python django redirect post httpresponse
您不能使用POST 方法进行重定向。唯一的解决方案是显示带有表单的中间 html 并在 window.load 事件上提交此表单:
return render(request, 'my_form.html', {'param1': 'Parameter 1',
'param2': 'Parameter 2'})
my_form.html 看起来像:
<html>
<body onload="document.my_form.submit()">
<form action="http://external_url" name="my_form" method="POST">
<input type="hidden" name="param1" value="{{ param1 }}" />
<input type="hidden" name="param2" value="{{ param2 }}" />
</form>
</body>
</html>
【讨论】:
param1 值传递给模板。 AFAIK 现代浏览器支持隐藏输入中的多行值,但为了兼容性,您必须转义 \n 和 \r 符号。或者使用 <textarea> 和 display: none css 属性。