2009-05-12 2 views
6

내가 자주하는 일 중 하나는 템플릿 태그 나 함수에 문자열 리터럴을 매개 변수로 전달하는 것입니다. 예 :Django 템플릿의 템플릿 태그에 대한 문자열 리터럴 사용

{% url my-url 'my_param' %} 

불행히도, django 템플릿 엔진은 이것을 허용하지 않습니다. 그래서 나는 나 자신이 내보기 코드이 많은 일을 찾아 내보기 코드에서

my_context_dict['MY_PARAM'] = 'my_param' 

다음을 :

{% url my-url MY_PARAM %} 

아니면 내가 개인적으로 피하려고 URL 매핑, 일련의 생성.

Django 템플릿에서 문자열 리터럴을 사용할 수 있습니까? 아니면 좀 더 우아한 해결책일까요? 나는 여기 또는 문서에서 아무 것도 보지 못했다. 대신 작은 따옴표의

답변

12

이 잘못 느낌이 있지만, 권리입니다.

<a href="{% url someting "param1" "param2" %}">text</a> 

가 작동해야처럼의이 보이지 않는 중첩 "" '는. 그들이하다. Django {% %} 자료는 주변 컨텍스트에 관계없이 HTML에서 간단하게 꺼내집니다. 따라서 "복제 된""은 실제로 복제되지 않습니다.

+0

url.py urlpatterns에는 어떤 변경이 필요합니까? – jencko

12

사용 따옴표 :

{% url my_view "my_param" %} 
1

매우 wierd - 문자열 값을 전달하기 위해 작은 따옴표를 사용하는 django 프로젝트가 있으며 정상적으로 작동합니다.

<a href="{% url categories 'vendor' %}"</a> 
<a href="{% url categories 'crew' %}"</a> 

추가 조사에서 this has changed in django 1.5으로 밝혀졌습니다. 이제 URL 패턴 이름 주위에도 따옴표가 필요합니다.

관련 문제