从模板获取以前URL的“路径”

问题描述 投票:2回答:2

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

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

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

python django-templates django-urls
2个回答
1
投票

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

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

0
投票

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

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

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

见:Parse URLs into components

© www.soinside.com 2019 - 2024. All rights reserved.