settings.pyにテンプレートからアクセスできるようにしたい項目がいくつかありますが、どうすればいいのかわかりません。すでに試してみました
{{CONSTANT_NAME}}
しかし、それは機能しないようです。これは可能ですか?
ベストアンサー1
すべてのリクエストとテンプレートに同じ値を設定する場合は、コンテキストプロセッサがより適切です。
方法は次のとおりです。
アプリ ディレクトリにファイルを作成します。すべてのコンテキストで値
context_processors.py
を取得したいとします。ADMIN_PREFIX_VALUE
from django.conf import settings # import the settings file def admin_media(request): # return the value you want as a dictionnary. you may add multiple values in there. return {'ADMIN_MEDIA_URL': settings.ADMIN_MEDIA_PREFIX}
コンテキスト プロセッサをsettings.pyファイルに追加します。
TEMPLATES = [{ # whatever comes before 'OPTIONS': { 'context_processors': [ # whatever comes before "your_app.context_processors.admin_media", ], } }]
ビューで使用して
RequestContext
、テンプレートにコンテキストプロセッサを追加します。render
ショートカットこれを自動的に実行します:from django.shortcuts import render def my_view(request): return render(request, "index.html")
そして最後に、テンプレートで次の操作を行います。
... <a href="{{ ADMIN_MEDIA_URL }}">path to admin media</a> ...