49 사용자 정의 Template Tag 및 Filter

49.1 Custom Template 디렉토리 만들기

공식문서 참고자료

장고에는 많은 필터가 존재하지만, 나만의 기능적인 태그와 필터 기능이 필요할때가 있습니다.

만들어 보겠습니다. 프로젝트 APP 하위에 templatetags 를 만들고 extr_blog.py를 만들었습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#pythonblog/myapp/blog/templatetags/extr_blog.py

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def lower(value):
    return value.lower()

49.2 디렉토리 확인 - __init__.py

templatetags에 init 과 ex_blog 파일 2개를 만드시면 됩니다.

init.py 는 해당 디렉토리가 파이썬 모듈로 인식하기 하기 위해 존재합니다.

49.3 목록화면에서 사용해보기 - PyBlog_list.html

상단에 모듈을 load 합니다.(extr_blog)

extr_blog 안의 함수사용은 그림과 같이
데이터|사용자정의함수 로 사용됩니다.

1
2
3
4
{% extends "base/base.html" %}
{% load extr_blog %} 

{{list.title|lower}}

49.4 브라우저로 적용확인하기

대문자가 소문자로 모두 변경되었습니다.
잘 작동합니다.