konbu's blog

PHP/Ruby/Python あたりが仕事で使っている言語です。プログラミング、学習や教育ネタを書いていきます。

jinja2 と Django と django-debug-toolbar を使う

django 1.9 と jinja2(1.9 ではデフォルトで使用できる) と django-debug-toolbar を併用したかったので、色々調査。

結構悩んだけど、こんな感じで並列に書いてしまって良いらしい。 django-debug-toolbar は django の標準が使えないと駄目? らしく消すと上手くいかないのでこれで運用した。

TEMPLATES = [
    # jinja2
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'environment': 'app.jinja2.environment',
        },
    },
    # django default
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

'environment': 'app.jinja2.environment' というのは、 Templates | Django documentation | Django で書いているサンプルを使っている。

あと、地味に templates (htmlとかjinjaとか) の配置に困ったんだけど、 基本的に各 app の下に置くという形が良さそうという感じに落ち着いた。

この辺りは別の話なので、また後で書く。