获得'路径'来自模板的先前URL的

时间:2017-07-29 05:19:18

标签: python django-templates django-urls

我知道我可以使用以下内容获取模板中的上一个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

我也可以在模板中做同样的事情吗?

更新(包含更多信息):我的用例是将之前的网址与同一网站中的其他网址进行比较,看看用户是否从那里进来

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

如果你使用自定义代码处理它,这可能对基本情况没有太大影响,但可能对更好的边缘情况有所帮助:

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

请参阅:Parse URLs into components