2013-07-18 3 views
0
{% for record in records%} 

string1 = 'views.' + record.field1 + record.field2 

<a href ="{%url string1 %}>Test this</a> 

{%endfor%} 

HTML/Django에서 가능합니까? 변수 'string1'을 동적으로 만들고이를 URL로 전달해야합니다. 도움 요청.Django의 동적 URL/HTML

답변

0

사용 {% with %}

{% with "views."|add:record.field1|add:record.field2 as string1 %} 
    <a href="{% url string1 %}">Test this</a> 
{% endwith %} 

하지만이는 템플릿 안에 당신의 효율적 퍼팅 논리 때문에 IMO 가장 좋은 방법으로 간주되지 않습니다.

record 모델의 메소드로 처리해야하며, 아마도 field_url 또는 무엇인가라고합니다. 이런 식으로 당신은 드라이를 위반하지 않으며 당신이 당신의 URL을 망치고있는 누군가를 위험에 빠뜨리지 않을 것입니다. 당신은 그들을 노출시키기 전에 당신의 URL을 제대로 청소할 기회를 얻게 될 것입니다.

def field_url(self): 
    return "views.{0}{1}".format(self.field1, self.field2) 

및 템플릿

{% for record in records %} 
    <a href="{% url record.field_url %}">My URL</a> 
{% endfor %} 
+0

호출은 {%의 ENDWITH의 %} 덧붙였다. 여전히 오류 " '()'및 키워드 인수 '{}'이 (가)없는 'string1'에 대해 역방향으로 실행되었습니다. string1에 대한보기가 urls.py에 존재합니다. –

+0

이미 완료했습니다 ...? :) –

+0

첫 번째 방법 'string1'은 {% url string1 %} 범위 내에 채워진 변수로 사용할 수 없습니다. –