pyramidのjinjaテンプレートで独自filterを定義
pyramidのテンプレートで「nl2br」のような独自フィルターを挟みたいと思った時にメモです。
今回は「hoge2hage」という「hoge」を「hage」に変換するフィルターを定義してみます。
1. フィルター処理を作成
適当なところに処理を作成します。
$ vi myapp/filters.py def hage2hoge(value): return re.sub(r'hage', 'hoge', value)
2. フィルターを定義
定義をコンフィグファイルに記載します。
$ vi development.ini [app:main] use = egg:myapp pyramid.reload_templates = true pyramid.debug_authorization = false pyramid.debug_notfound = false pyramid.debug_routematch = false pyramid.default_locale_name = en pyramid.includes = pyramid_debugtoolbar jinja2.filters = hoge2hage = myapp.filters:hoge2hage
3. テンプレートでフィルターを使用
あとは以下のように使用すればjinjaテンプレートのフィルターとして動作します。
$ vi myapp/templates/hello.jinja2 hello {{data|hoge2hage}}