본문 바로가기

Python/Django

Django Template filter: {% with %}

728x90
반응형

Django template에서 필터와 필터를 중복해서 써야되는 경우들이 있다.
예를 들어서 mathfilters를 이용해서 연산을 하고, 거기에 특정 리스트의 길이를 더하고 싶을때 |length 필터를 더해줘야 하는데, 이럴 때 원하는 대로 작동을 안한다.
그때 {% with %} 로 원하는 값을 먼저 뽑아와서 용해주면 된다

example 1)

    {{commits.number|mul:3|add:commits|length}}	    # X
    
    {% with commits|length as commits_length %}     # O
      {{commits.number|mul:3|add:commits_length}}
    {% endwith %}

 

example2)

{% with name|add:"Kim" as re_name %}
  {% if re_name == request.user.username %}
{% endwith %}

 

728x90
반응형