【Django1.4】テンプレート内でviews.pyから渡さなくてもrequest変数を使えるようにする

問題

{{ request.get_full_path }}

などをテンプレートで使おうと思っても,
標準の設定ではviews.pyからrequest変数を渡さないといけない.

それは面倒だ.

解決方法

setting.pyの TEMPLATE_CONTEXT_PROCESSORS を書き換える.そもそもsettings.py内に

TEMPLATE_CONTEXT_PROCESSORS = (...)

の記述がなかった.記述がない場合はDjango側が勝手にデフォルトの値で動かしてくれているのだろう.

今回はtemplate内でrequest変数を使いたいので デフォルトの値に 'django.core.context_processors.request' を追加したものをTEMPLATE_CONTEXT_PROCESSORS=(...)として記述する.デフォルトの確認 → デフォルトの値(document)

'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', # デフォルト
'django.core.context_processors.request', # 追加