2017-04-04 4 views
2

Djangoテンプレートで環境変数に直接アクセスするにはどうしたらいいですか?私はDjangoテンプレートでは、この非作業コードのような何かを探しています

{% if os.environ.DJANGO_SETTINGS_MODULE == "settings.staging" %} 

は、この可能性のようなものですか?私の回避策は、変数をすべてのテンプレートで使用できるようにするコンテキストプロセッサを作成することですが、同じ結果を得るためのより直接的な方法があるかどうかを知りたがっています。

+0

を使用することができる例はありません、環境は明示的にもテンプレートで環境変数を取得するために、カスタムテンプレートタグやフィルタを使用することができます – dentemm

+0

それを追加することなく、テンプレートからアクセスすることはできません。 –

答えて

2

context_processorを使用すると、テンプレートでos.environ.DJANGO_SETTINGS_MODULEとしてSETTING_TYPEにアクセスできるはずです。あなたは{% if SETTING_TYPE == "settings.staging" %}

# project/context_processors.py 
import os 

def export_vars(request): 
    data = {} 
    data['SETTING_TYPE'] = os.environ.DJANGO_SETTINGS_MODULE 
    return data 


# project/settings.py (your actual settings file) 


TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       ... 
        'project.context_processors.export_vars', 
       ... 
      ] 
     } 
     } 
    ] 
関連する問題