从模板中获取前 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
看起来在模板中没有直接的方法,所以这就是我最终在模板中所做的,以检查特定的(相对的)url 是否是前一个的一部分(绝对值)URL :
{% url 'schoollist:add_school' as add_school_url %}
{% if add_school_url in request.META.HTTP_REFERER %}
Thanks for adding!
{% endif %}
我知道我可以使用以下命令在模板中获取之前的 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
看起来在模板中没有直接的方法,所以这就是我最终在模板中所做的,以检查特定的(相对的)url 是否是前一个的一部分(绝对值)URL :
{% url 'schoollist:add_school' as add_school_url %}
{% if add_school_url in request.META.HTTP_REFERER %}
Thanks for adding!
{% endif %}