장고 템플릿에 현재 페이지 URL과 모든 매개 변수를 가져 오는 방법이 있습니까? 예를 들어Django : 템플릿에 매개 변수를 포함한 현재 페이지의 URL을 가져옵니다.
, 파일 context_processors.py에서 /foo/bar?param=1&baz=2
장고 템플릿에 현재 페이지 URL과 모든 매개 변수를 가져 오는 방법이 있습니까? 예를 들어Django : 템플릿에 매개 변수를 포함한 현재 페이지의 URL을 가져옵니다.
, 파일 context_processors.py에서 /foo/bar?param=1&baz=2
사용자 정의 컨텍스트 프로세서를 작성하십시오. 예 :
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
같은 전체 URL (등)을 인쇄 것 templatetag : settings.py에서
def myurl(request):
return { 'myurlx': request.get_full_path() }
:
TEMPLATE_CONTEXT_PROCESSORS = (
...
wherever_it_is.context_processors.myurl,
...
을
내 template.html :
myurl={{myurlx}}
죄송합니다, 실수로 downvoted .. 제발 그걸 취소 할 수 있도록 변경하십시오. –
장고가 내장 된 물건을 많이 가지고 있지만, 당신은 당신이 무엇에 사용해야 할지를 명시하지 않으면, 그것은 원 ' 사용할 수 없습니다.
MTV 스키마 (Model, Template, View)에서 뷰는 요청을 수신하고 템플릿 렌더를 사용하여 응답을 생성하고 사전 또는 모든 로컬 변수 (locals() 함수 사용)를 전달합니다. 전망.
이views.py :
from django.shortcuts import render
def page(request):
currentUrl = request.get_full_path()
return render(request, 'app/page.html', locals())
그런 다음 템플릿에서 '응용 프로그램/page.html'그냥해야 할이 알고, 우리는이 같은 응답에서 온 현재의 URL을 삽입 할 수 있습니다
응용 프로그램/템플릿/page.html :
addtition에서{{ currentUrl }}
sdolan의 대답 : 우리가 방금 만든 및 지역 주민()를 통해 통과 CURRENTURL 변수를 표시하려면 다음
I18N을 사용하는 경우 next
값을 /i18n/setlang/
으로 전달하려면 현재 페이지의 언어를 변경하고 전체 경로에서 현재 언어 코드를 제거해야합니다. 같은 :이 모든 경로 형식 /LANG_CODE/any/other/stuff/with/?param='yay'
을 가지고 있으며, 단순히 무엇이든 LANG_CODE
를 개막한다고 가정
full_path = request.get_full_path()
current_path = full_path[full_path.index('/', 1):]
(예를 들어, /en/
는 /
에 발생합니다).
템플릿 컨텍스트에서 요청을 얻으려면 컨텍스트 프로세서에서 Django의 빌드를 사용하십시오. 설정에서 TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS = (
# Put your context processors here
'django.core.context_processors.request',
)
및 템플릿 사용 request
프로세서를 추가
{{ request.get_full_path }}
당신은 자신에 의해 새로운 코드를 작성할 필요가 없습니다 이쪽으로.
이 방법을 사용하면 기본 TEMPLATE_CONTEXT_PROCESSORS를 덮어 쓰므로 목록에 다시 추가해야합니다 . [The docs] (https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS)에는 목록에 포함될 기본값 목록이 있습니다. – carruthd
URL이 다른 URL과 다른지 확인할 수 있습니다. [템플릿에서 읽기 경로]의
{% if 'foo/bar/' in request.get_full_path %}
가능한 중복 (http://stackoverflow.com/questions/2127937/reading-path-in-templates) –
다른 가능한 중복 [장고 템플릿을 withing에 현재의 URL을 얻을 것입니다 ] (http://stackoverflow.com/questions/2882490/get-the-current-url-within-a-django-template) –