我周围的 Django的的工具,我想知道如果有一个简单的方法来创建“返回”链接到使用模板系统中的前一页。

我想的是,在最坏的情况下,我可以得到从在视图功能的请求对象此信息,并将其传递给模板渲染方法,但我希望我能避免所有这些样板代码不知。

我检查Django模板的文档,我还没有看到任何东西,提到了这一点明确。

有帮助吗?

解决方案

那么你可以启用:

'django.core.context_processors.request',

在您的settings.TEMPLATE_CONTEXT_PROCESSORS块和钩出来的引荐,但是这是一个有点肉麻,并可能打破所有的地方。

在这里你会想这(对SO如编辑后页)你有实物,勾上(在该示例中,后),这样你可以很容易地制定出正确的前一页应该是什么大多数地方

其他提示

实际上它是go(-1)

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

此溶液制定了我:

<a href="{{request.META.HTTP_REFERER}}">Go back</a>

但是,这之前增加'django.core.context_processors.request',在项目的设置,以TEMPLATE_CONTEXT_PROCESSORS

<a href="{{request.META.HTTP_REFERER|escape}}">Back</a>

|escape走出 “” stringage的

有关在变化形式的Django管理是我最终会做一个“返回”按钮是一个自定义模板过滤器来解析和模板解码“preserved_filters”变量。我放置在定制的模板/管理/ submit_line.html文件以下内容:

<a href="../{% if original}../{% endif %}?{{ preserved_filters | decode_filter }}">
    {% trans "Back" %}
</a>

和然后创建的自定义模板过滤器:

from urllib.parse import unquote
from django import template

def decode_filter(variable):
    if variable.startswith('_changelist_filters='):
        return unquote(variable[20:])
    return variable

register = template.Library()
register.filter('decode_filter', decode_filter)

可以始终使用客户端选项,这是很简单的:

<a href="javascript:history.go(1)">Back</a>

使用客户端的解决方案将是适当的解决方案。

<a href="javascript:history.go(-1)" class="btn btn-default">Cancel</a>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top