1. ホーム
  2. django

[解決済み] Djangoのテンプレートからsettings.pyの定数にアクセスすることは可能ですか?

2022-03-23 01:53:15

質問

settings.pyにテンプレートからアクセスできるようにしたいものがあるのですが、どうすればいいかわかりません。すでに試しました

{{CONSTANT_NAME}}

が、これではうまくいかないようです。これは可能なのでしょうか?

解決方法を教えてください。

Django は、頻繁に使われる特定の設定定数へのアクセスをテンプレートに提供します。 settings.MEDIA_URL また、django の内蔵汎用ビューを使うか、コンテキストインスタンスのキーワード引数で render_to_response というショートカット関数があります。 以下はそれぞれの場合の例です。

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic.simple import direct_to_template

def my_generic_view(request, template='my_template.html'):
    return direct_to_template(request, template)

def more_custom_view(request, template='my_template.html'):
    return render_to_response(template, {}, context_instance=RequestContext(request))

これらのビューには、どちらも頻繁に使用されるいくつかの設定、たとえば settings.MEDIA_URL としてテンプレートで使用できます。 {{ MEDIA_URL }} などがあります。

設定にある他の定数にアクセスしたい場合は、必要な定数を解凍して、ビュー関数で使用しているコンテキスト辞書にこのように追加するだけでよいのです。

from django.conf import settings
from django.shortcuts import render_to_response

def my_view_function(request, template='my_template.html'):
    context = {'favorite_color': settings.FAVORITE_COLOR}
    return render_to_response(template, context)

これで settings.FAVORITE_COLOR をテンプレート上で {{ favorite_color }} .