カスタムコンテキスト プロセッサを作成する必要があります。
コンテキスト プロセッサのインターフェイスは非常に単純です。これは、1 つの引数 (HttpRequest
オブジェクト) を受け取り、テンプレート コンテキストに追加される辞書を返す単なる Python 関数です。各コンテキスト プロセッサは辞書を返す必要があります。
カスタム コンテキスト プロセッサは、コード ベースのどこにでも配置できます。Django が気にするのは、カスタム コンテキスト プロセッサがTEMPLATE_CONTEXT_PROCESSORS
設定によってポイントされることだけです。
例えば:
# in project/context_processors.py
def add_extra_variable(request):
return {'extra': myfunction(request)}
# in settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"project.context_processors.add_extra_variable"
)
PS:render
の代わりにを使用する場合render_to_response
、 を渡す必要はありませんRequestContext
。
render('page.html', dictionary)