从模板中获取前 URL 的 'path'

Getting 'path' of previous URL from template

我知道我可以使用以下命令在模板中获取之前的 URL:

{{ request.META.HTTP_REFERER}}

但我想知道是否有办法只获取路径而不是绝对路径URL (即 /my-page 而不是 http://localhost:8000/my-page

像视图中我们可以做的:

from urllib import parse
parse.urlparse(request.META.get('HTTP_REFERER')).path

我也可以在模板中做类似的事情吗?

Update(含更多信息):我的用例是将同一站点中的前一个 url 与另一个 url 进行比较,以查看用户是否从那里进来

实现此目的的一种可能方法是使用 urlparse 从引用 URL 中获取组件,然后获取相对路径。

如果您使用自定义代码处理它,这对于基本情况可能不会有太大区别,但对于更高级的边缘情况可能会有一些好处:

from urlparse import urlparse
referer = request.META.get('HTTP_REFERER')
path = urlparse(referer).path

参见:Parse URLs into components

看起来在模板中没有直接的方法,所以这就是我最终在模板中所做的,以检查特定的(相对的)url 是否是前一个的一部分(绝对值)URL :

{% url 'schoollist:add_school' as add_school_url %}
{% if add_school_url in request.META.HTTP_REFERER %} 
    Thanks for adding!
{% endif %}