Django模板:创建一个"后退"链接?

TM.*_*TM. 23 python django request referrer

我正在使用Django工具,我想知道是否有一种简单的方法可以使用模板系统创建到上一页的"后退"链接.

我认为在最坏的情况下,我可以从视图函数中的请求对象获取此信息,并将其传递给模板呈现方法,但我希望我能以某种方式避免所有这些样板代码.

我检查了Django模板文档,我没有看到任何明确提到这一点的内容.

小智 34

实际上是go(-1).

<input type=button value="Previous Page" onClick="javascript:history.go(-1);">
Run Code Online (Sandbox Code Playgroud)

  • 对其他答案的回答属于评论而非新答案. (3认同)
  • 我没有在野生动物园工作.对于所有浏览器使用此:onClick ="window.history.back(); return false;" (2认同)

小智 25

这个解决方案适合我:

<a href="{{request.META.HTTP_REFERER}}">Go back</a>
Run Code Online (Sandbox Code Playgroud)

但是之前添加'django.core.context_processors.request',TEMPLATE_CONTEXT_PROCESSORS项目的设置中.

  • 如果你的“settings.py”文件的模板部分中有“django.template.context_processors.request”,那么你所要做的就是将 HTML 部分添加到你的模板中,它就会工作。 (2认同)

Oli*_*Oli 12

那么你可以启用:

'django.core.context_processors.request',
Run Code Online (Sandbox Code Playgroud)

在你的settings.TEMPLATE_CONTEXT_PROCESSORS区块中并挂钩引用者,但这有点令人作呕,可能会破坏所有地方.

你想要这个的大多数地方(例如SO上的编辑帖子页面)你有一个真正的对象可以挂钩(在那个例子中,帖子),这样你就可以很容易地找出正确的上一页应该是什么.


Has*_*tax 8

<a href="{{request.META.HTTP_REFERER|escape}}">Back</a>
Run Code Online (Sandbox Code Playgroud)

这里|escape是用来跳出" "字符串的。