1 2 3 4 5 6 7 8 9 10 11 12 13 | $ emacs settings.py TEMPLATE_CONTEXT_PROCESSORS = ( "hogeapp.context_processors.user_name", ..., ) $ emacs hogeapp/context_processors.py def user_name(request): if ( request.user.is_authenticated() ): return {"uname": request.user.username} else: return {"uname": None} # 上記の例は、アカウント名を「uname」というテンプレート変数に # 格納するような設定です。 |
context_processors変数を呼び出したい場合は、ビューにて明示的にコンテキストに追加する必要があります。しかし、context_processors単位ではなく、全体を一気に追加することができます。
1 2 3 | return render_to_response('my_template.html', my_dict , context_instance=RequestContext(request)) |
上記のように、ビューでレスポンスを返す際に「context_instance」にRequestContext(request)を代入することで、テンプレートファイルmy_template.htmlからcontext_processors変数が参照可能となります。
当然、context_processors変数を作成すること自体オーバーヘッドになりますので、必要なときののみ作成するようにしましょう。