>

템플릿 내에서 현재 URL을 얻는 방법이 궁금합니다.

현재 URL은 다음과 같습니다.

.../user/profile/

이것을 템플릿으로 되돌리려면 어떻게합니까?

  • 답변 # 1

    장고 1.9 이상 :

    ## template
    {{ request.path }}  #  -without GET parameters 
    {{ request.get_full_path }}  # - with GET parameters
    
    

    이전 :

    ## settings.py
    TEMPLATE_CONTEXT_PROCESSORS = (
        'django.core.context_processors.request',
    )
    ## views.py
    from django.template import *
    def home(request):
        return render_to_response('home.html', {}, context_instance=RequestContext(request))
    ## template
    {{ request.path }}
    
    

  • 답변 # 2

    다음과 같이 템플릿에서 URL을 가져올 수 있습니다.

    <p>URL of this page: {{ request.get_full_path }}</p>
    
    

    또는

    {{ request.path }}  추가 매개 변수가 필요하지 않은 경우

    일부 정밀도와 수정은 hypete와 Igancio의 답변으로 가져와야합니다. 나중에 참조 할 수 있도록 여기에 전체 아이디어를 요약하겠습니다.

    request 가 필요한 경우  템플릿에 변수를 추가하면 'django.core.context_processors.request'를 TEMPLATE_CONTEXT_PROCESSORS반드시추가해야합니다.  기본 설정이 아닙니다 (Django 1.4).

    또한 응용 프로그램에서 사용하는 다른 컨텍스트 프로세서를잊지 말아야합니다. 따라서 다른 기본 프로세서에 요청을 추가하려면 기본 프로세서 목록의 하드 코딩을 피하기 위해 설정에서 추가 할 수 있습니다 (이후 버전에서는 매우 변경 될 수 있음).

    from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
    TEMPLATE_CONTEXT_PROCESSORS = TCP + (
        'django.core.context_processors.request',
    )
    
    

    그런 다음 request 를 보내면  응답 내용 (예 : 다음과 같이) :

    from django.shortcuts import render_to_response
    from django.template import RequestContext
    def index(request):
        return render_to_response(
            'user/profile.html',
            { 'title': 'User profile' },
            context_instance=RequestContext(request)
        )
    
    

  • 답변 # 3

    장고 템플릿에서
    {{request.path}} 에서 현재 URL을 얻으십시오.
    매개 변수 {{request.get_full_path}} 로 전체 URL을 얻으려면

    참고: request 를 추가해야합니다  장고 위즈 비즈

  • 답변 # 4

    템플릿으로 보내기 전체 요청이 약간 중복 된 것으로 가정합니다. 이렇게하겠습니다

    TEMPLATE_CONTEXT_PROCESSORS
    
    

  • 답변 # 5

    적어도 나의 경우에는 다른 답변이 틀렸다. 와이즈 비즈  전체 URL을 제공하지 않고 상대 URL 만 제공합니다 (예 : 와이즈 비즈 . 적절한 해결책을 찾지 못했기 때문에 def home(request): app_url = request.path return render(request, 'home.html', {'app_url': app_url}) ##template {{ app_url }} 와 연결하기 전에 View에서 URL의 일정한 부분을 하드 코딩했습니다. .

    request.path

관련 자료

  • 이전 Java 및 Processing 30 "프레임"클래스는 더 이상 사용되지 않습니다 대안이 있습니까?
  • 다음 python - 그룹별로 그룹을 분할하고 하위 플롯으로 플로팅