我知道我可以使用以下内容获取模板中的上一个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
我也可以在模板中做同样的事情吗?
更新(包含更多信息):我的用例是将之前的网址与同一网站中的其他网址进行比较,看看用户是否从那里进来
答案 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