问题 如何获取django中的上一个url


我会给出一步一步的信息。

假设我们在about页面,url是sample.com/about。 有一个朋友按钮的电子邮件,点击后,网址为sample.com/emailafriend。 然后,当我点击提交按钮时,将提交的referal网址是sample.com/emailafriend。问题,如何获取关于页面的网址?顺便说一下,我正在使用 request.META['HTTP_REFERER']


6880
2017-11-30 13:59


起源



答案:


你可以使用 请求路径属性 并将其添加到表单的action属性,如下所示:

<form method="post" action="/tell-a-friend?return_url={{ request.path }}">
...
</form>

然后,在你告诉朋友的视图中, HttpResponseRedirect 到了 return_url 查询参数。


10
2017-11-30 15:47



这绝对是一种坚持重定向的好方法。 - Matt Williamson


答案:


你可以使用 请求路径属性 并将其添加到表单的action属性,如下所示:

<form method="post" action="/tell-a-friend?return_url={{ request.path }}">
...
</form>

然后,在你告诉朋友的视图中, HttpResponseRedirect 到了 return_url 查询参数。


10
2017-11-30 15:47



这绝对是一种坚持重定向的好方法。 - Matt Williamson


看起来好像你正在使用 APPEND_SLASH 如果你没有斜线,它会进行重定向。尝试将按钮链接更改为 sample.com/emailafriend/,注意结尾的斜线。


1
2017-11-30 14:09



根据 docs.djangoproject.com/en/dev/ref/request-response/... - Christophe Debove
我已经在使用那个请求了。但是当你点击提交按钮时,referal页面已经是sample.com/emailafriend了,不再是了。 - david
我刚刚更新了我的答案。 - Matt Williamson
马特,已经有斜线,仍然无法正常工作。 - david
如果它适合您,请不要忘记告诉我们 - Matt Williamson


如果你得到一个空的 request 模板中的变量,检查出来 这个帖子


1
2018-06-27 00:48





也许只是将sample.com/about作为GET或POST参数传递?甚至通过会话。


0
2017-11-30 15:25