3. 장고 탬플릿 필터

Sam (토론 | 기여)님의 2021년 6월 23일 (수) 12:27 판 (→‎개요)

1 개요

탬플릿 내에서 함수처럼 쓰이는 기능이다.(굳이 탬플릿에서 처리할 게 아니라, 연산은 view에서 처리한 후 결과 변수로 넣는 편이 편할 것 같은데..)

그저 데이터형이라든가.. 간단한 조작을 할 땐 유용하다.

특수기능을 사용할 때 외엔 그닥 쓰이지 않는다.

2 탬플릿 필터

파이프문자를 사용하여 함수처럼 작용한다.

{{변수|필터}} 형태로 사용한다.

{{변수|필터|필터2}} 형태로 중복해 사용할 수도 있다.

필터 설명
|add:숫자 숫자만큼 더한다.(음수도 가능)
|safe XSS를 막기 위해 HTML에서 쓰이는 문자들은 자동으로 이스케이프 처리한다.

하지만, HTML태그를 그대로 사용해야 할 때가 있는데, safe필터를 사용하여 해당부분의 제한만 풀거나 {%autoescape%}태그를 사용하여 {%endautoescape%} 사이의 이스케이프를 방지한다.

|default:"문자열" 값이 없거나 False인 경우 대체할 문자열을 지정한다.
|truncatechars:숫자 제목이 길어질 때 특정 숫자의 글자만 나타내고 싶을 때 사용한다.
|timesince 시간 데이터에 붙는다.

게시판에서 작성된지 얼마나 지났는지 보여주기 위해.

더 많은 필터는 https://docs.djangoproject.com/en/3.1/ref/templates/builtins/ 등의 문서를 뒤지자.

각종 필터함수를 만들 수도 있지만 기능에 관련한 것들은 가능하면 view에서 처리하는 편이 디자이너와의 협업에 좋다.