読者です 読者をやめる 読者になる 読者になる

ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

テンプレート用のカスタムタグやカスタムフィルタをサブディレクトリに分ける

django IT系・技術系

djangoのカスタムタグやカスタムフィルタを利用する場合はloadタグでファイル名(モジュール名)を
指定してロードする。


これまたアプリ名は必要なく、モジュール名だけで呼び出せるのだけど、
そのままだと名前がかぶる可能性があるのでアプリを指定して呼び出したい時がある。


そんな時はアプリ名と同じサブディレクトリ(サブモジュール?)を作成してそこにファイルを配置する


こんな感じ

project1/
app1/
templatetags/
__init__.py
app1/
__init__.py
filters.py
app2/
templatetags/
__init__.py
app2/
__init__.py
filters.py


このように配置したファイルでapp1アプリのfilters.py内のタグやフィルタを使用したい場合は、
テンプレートで下記のように指定する

{% load app1.filters %}


同じようなネタでした。