回答
編寫自定義上下文處理器。例如
def get_current_path(request):
return {
'current_path': request.get_full_path()
}
添加路徑該函數在TEMPLATE_CONTEXT_PROCESSORS
設置變量,並用它在你的模板,像這樣:
{{ current_path }}
如果你想在每一個請求完整request
對象,可以使用內置的django.core.context_processors.request
上下文處理器,然後在您的模板中使用{{ request.get_full_path }}
。
參見:
如果你需要這個重定向,請不要忘記使用urlencode,即'{{request.get_full_path | urlencode}}' – Medorator 2014-07-02 14:44:50
在文件context_processors.py(或類似)一個templatetag:
def myurl(request):
return { 'myurlx': request.get_full_path() }
在settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
...
wherever_it_is.context_processors.myurl,
...
在您的template.html中:
myurl={{myurlx}}
對不起,錯誤downvoted ..請進行更改,以便我可以撤消。 – 2012-10-30 06:00:52
Django中有很多內置的東西,但如果你不明確的,你想用什麼,它贏得了」不要使用。因此,在MTV模式(模型,模板,視圖)中,視圖接收請求並使用模板渲染來生成響應,傳遞它的字典或所有局部變量(使用locals()函數)視圖。知道了這一點,我們可以插入從反應過來當前的URL,就像這樣:
views.py:
from django.shortcuts import render
def page(request):
currentUrl = request.get_full_path()
return render(request, 'app/page.html', locals())
然後,在模板「應用程序/ page.html中」你只需要做下面,以顯示我們剛剛創建,並通過當地人()穿過的CURRENTURL變量:
應用/模板/ page.html中:
{{ currentUrl }}
在addtition到sdolan的回答是:
如果您使用的是I18N並且想要將next
值更改爲/i18n/setlang/
以更改當前頁面的語言,那麼您將需要從完整路徑中去除當前語言代碼。喜歡的東西:
full_path = request.get_full_path()
current_path = full_path[full_path.index('/', 1):]
這假定每個路徑具有格式/LANG_CODE/any/other/stuff/with/?param='yay'
,只是揭開序幕LANG_CODE
不管它是什麼(例如,/en/
將導致進入/
)。
在上下文處理器中使用Django的內部版本來獲取模板上下文中的請求。在設置添加request
處理器TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS = (
# Put your context processors here
'django.core.context_processors.request',
)
而且在模板的使用:
{{ request.get_full_path }}
這樣,你不需要自己編寫任何新的代碼。
應該注意的是使用這個方法會覆蓋默認的TEMPLATE_CONTEXT_PROCESSORS,所以你必須把它們加回到列表中。 [文檔](https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS)列出了要包含在列表中的默認值。 – carruthd 2014-06-27 16:35:08
你可以看到你的網址是否與其他網址不同。 [模板讀取路徑]的
{% if 'foo/bar/' in request.get_full_path %}
- 1. 在模板中獲取當前URL kwargs?
- 2. 獲取當前URL包括jqGrid的
- 3. 獲取當前頁面url
- 4. 如何獲取Django模板中的當前URL?
- 5. 在Django模板中獲取頁面url並縮短鏈接
- 6. 如何獲取當前頁面名稱,包括URL中的$ _GET變量?
- 7. Django模板能否傳遞參數?獲取當前用戶
- 8. 從WebView獲取當前頁面的URL
- 9. 獲取當前頁面的URL
- 10. 在Typo3中獲取當前URI新頁面模板
- 11. 獲取ejs模板中的url參數
- 12. 包括在Django模板
- 13. 如何獲取GAE模板中當前頁面的網址
- 14. 從url獲取當前頁面
- 15. 的Django包括模板到另一個模板
- 16. 默認參數 - >模板參數包括模板參數
- 17. 獲取當前頁面模板的名稱,而不訴諸嗅探URL
- 18. 使用與Django模板中的當前頁面相同的GET參數生成url
- 19. 如何根據模板從頁面獲取頁面參數
- 20. 如何獲取擁有主頁面的當前頁面的url?
- 21. 將參數添加到頁面當前的URL中,該頁面的當前URL在另一個Javascript函數內解析,以將其放置在頁面上
- 22. 鵜鶘模板中當前頁面的URL變量
- 23. Django url pattern multiple參數(不包括pk)
- 24. 在Django的Flatpages中獲取當前活動頁面
- 25. 在Ruby/Rack中獲取當前頁面的URL
- 26. 在ASP.net中獲取當前頁面的URL
- 27. 在Grails中獲取當前頁面的URL
- 28. 在jQuery手機中獲取當前頁面的URL
- 29. ASP.NET MVC:如何在視圖中獲取頁面的當前URL?
- 30. 如何在jQuery Mobile 1.4.5中獲取當前頁面的URL?
可能重複(http://stackoverflow.com/questions/2127937/reading-path-in-templates) – 2014-06-19 08:54:53
另一個可能的重複是[獲取當前URL withing Django模板](http://stackoverflow.com/questions/2882490/get-the-current-url-within-a-django-模板) – 2014-06-19 08:57:15