2015-01-02 4 views
1

HTML 속성을 쉽게 추가 할 수있는 addattrs이라는 맞춤 태그를 작성했습니다. 그것은 잘 작동Django : 템플릿의 맞춤 태그 및 태그 평가

<div> 
    <label>Last name</label> 
    {{ form.last_name|addattrs:"class=blue-form&placeholder=Please enter your name" }} 
</div> 

:

나는 그런 식으로 사용합니다. 그러나 지금, 나는 HTML에 value 속성을 추가 할 : 내 양식에서와 같이

<div> 
    <label>Last name</label> 
    <!-- last_name is availaible from the current context --> 
    {{ form.last_name|addattrs:"class=blue-form&value=last_name" }} 
</div> 

문제는 last_name 평가 및 작성되지 않습니다. last_name을 강제로 평가하는 방법은 무엇입니까? {% with last_name as myvariable %} 블록을 시도했지만 그 결과는 정확히 같습니다.

감사합니다.

편집

alecxe 솔루션은 작동합니다. 값이 날짜 인 경우 그러나, 그것은합니다 (HTML에 전혀 파이썬 오류하지만 속성.) 더 이상 작동하지 않습니다 나는이 시도 :

{% with "class=blue-form&value="|add:birth_date as attrs %} 
    {{ form.birth_date|addattrs:attrs }} 
{% endwith %} 

답변

1

사용할 수 add template filter :

{% with "class=blue-form&value="|add:last_name as attrs %} 
    {{ form.last_name|addattrs:attrs }} 
{% endwith %} 

날짜 값의 경우 먼저 문자열로 변환해야합니다. 보기 또는 템플릿에서 date template filter을 통해 예 :

{% with birth_date|date:"D d M Y" as my_date %} 
    {% with "class=blue-form&value="|add:my_date as attrs %} 
     {{ form.last_name|addattrs:attrs }} 
    {% endwith %} 
{% endwith %} 
+0

감사합니다. 나는 당신이 볼 수있는 특별한 경우가 작동하지 않기 때문에 질문을 편집했다. 어떤 생각? 다시 한번 감사드립니다. –

+1

@DavidW. 확실하게 업데이트되었습니다. – alecxe

+0

오우, 중첩 된! 영리한! 다시 감사, 두 번 대답을 대답 :) –