뷰가 호출되는 것을 이해할 수 있도록 추가 정보를 템플릿에 전달할 수도 있습니다. 그러나 그것은 내가 생각하기에 우아한 해결책은 아니다.
물론입니다.
def view1(request, form_class=MyForm, template_name='myapp/page.html'):
# app code here
this_url = reverse('view1')
render_to_response(template_name, locals(), RequestContext(request))
def view2(request, form_class=MyForm, template_name='myapp/page.html'):
# app code here
this_url = reverse('view2')
render_to_response(template_name, locals(), RequestContext(request))
myapp/page.html
: 예를 들면 다음과 같습니다이다
<a href="{{ this_url }}">Webpage</a>
또한 말,라는 자신의 URL 태그 변수로 대신보기 이름으로 첫 번째 인수를 취 dynurl
만들 수 있습니다
를
def view2(request, form_class=MyForm, template_name='myapp/page2.html'):
# app code here
this_view = 'view2'
render_to_response(template_name, locals(), RequestContext(request))
myapp/page.html
:
{% load dynurl_tags %}
<a href="{% dynurl this_view %}">Webpage</a>
현재보기에 대한 링크를 원하는 이유를 정확하게 설명하지 않았습니다. 같은 페이지로 연결 되나요?
<a href="">technically this points back to the same page</a>
<a href="{{ request.path }}">this url is the full path before the query string</a>
<a href="{{ request.get_full_path }}">this url is the full path plus the query string</a>
내가 키 차이가 두보기 사이를 무엇에 대해 생각하고 그 차이를 설명하는 변수 마련하는 것이 유용 할 것이라고 생각 : 그렇게하는 방법이 몇 가지 있습니다. 그런 다음 템플릿의 해당 변수를 사용하여 새 URL을 결정하십시오.
더 복잡한 문제의 경우 Pinax groups과 그 (것)들은 implement a {% groupurl %}
tag를보고 싶을 수도 있습니다. 기본적으로 이것은 주어진 앱의 모든 URL을 복제하고 URL을위한 특별한 그룹 기반의 역방향 조회를 만드는 데 사용되는 "그룹"변수를 전달할 수 있습니다.
감사합니다. 나는 내가 분명히 설명 할 수 없을 것 같아. 기본적으로, 내가 필요로하는 것은 URL 이름을 얻는 것이고, {% url-url-name %}처럼 그것의 이름으로 URL을 만들 수 있습니다. 당신이 말한대로 할 수 있습니다. 나는 당신이 어느 것을 일반적으로 선호하는지 모른다. – pocoa
중요한 질문은 ** 무엇을 위해 ** 당신이 URL 이름이 필요합니다. '{% url something %}'에서,'something'은 뷰의 이름입니다. 그것은 변수가 될 수 없습니다. 따라서 본질적으로 URL의 첫 번째 부분, 즉'{% url %} '이 (가) 호출 된 뷰는 항상 * 정적입니다. 즉, 다른보기를 호출해야하는 경우 '{% url %}'을 (를) 사용할 수 없습니다. 실제로 원하는 URL이보고있는 페이지와 같으면'{{request.path}} '를 사용하십시오. 실제로 원하는 URL이 해당보기와 일치하는 다른 URL 인 경우'{{this_url}} '을 사용하십시오. –