将用户重定向到上一页django

时间:2020-08-19 07:14:09

标签: django django-views django-templates

假设我们有一个带有博客模型的简单Django应用。

只有3页:

  1. 主页
  2. 博客索引
  3. 博客帖子详细信息

博客文章在3个位置列出:

  1. 在主页上的滑块中
  2. 在博客索引中(当然)
  3. 在博客文章的底部

在网站上看到的使用面包屑的主要方法有两种:

  1. 首页/博客/博客文章
  2. <返回

我希望能够使“ <返回”按钮返回到原始来源。

我知道这可以通过JavaScript完成。

但是在Django上,我听到人们在另一篇文章中说“您不应该在模板中重定向,而应该在视图中进行操作”,但是对我来说,这是没有道理的,因为视图应该如何知道自动返回哪个页面?

无论如何,我想看看的是:

您将如何链接回到您从中到达博客帖子的源页面 (即另一篇文章,主页或博客索引) > 使用Django视图还是在Django模板中?

1 个答案:

答案 0 :(得分:1)

我们可以在Django视图中使用request对象查找引荐链接。

这是此代码:

request.META['HTTP_REFERER']

您可以将以下代码添加到模板上下文中,以将链接添加到模板上下文中

{'previous_page': request.META['HTTP_REFERER']}

然后,我们可以使用包含按钮的链接将用户按下时重定向到上一页。

<a href = "{{previous_page}}"><button type="button">Back</button></a>

有关request.META词典的更多信息,在这里:

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.META

希望这会有所帮助