2017-07-29 111 views
1

以前的網址中的「路徑」我知道我可以通過以下獲得以前的URL模板:充分利用模板

{{ request.META.HTTP_REFERER}} 

,但我想知道如果我能得到的只是路徑,而不是絕對URL (即/我的頁面的代替http://localhost:8000/my-page

就像在視圖中我們可以這樣做:

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

我可以在模板中做類似的事嗎?

更新(更多信息):我用例是以前的網址與同一站點中的另一個URL進行比較,看是否用戶從那裏

回答

0

一種可能的方法來在實現這一目標是使用urlparse將組件從引用URL中取出,然後獲取相對路徑。

如果您有自定義代碼處理它這可能不會做太大的差別基本情況,但可能做了一些很好的與票友的邊緣情況:

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

參見:Parse URLs into components

+0

我在視圖中這樣做,但想知道是否有直接的方式在模板中做類似的事情 – Anupam

0

看起來有ISN在模板中沒有直接的方法,所以這就是我在模板中做的事情,以檢查特定(相對)url是否是以前(絕對)URL的一部分:

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