2
我希望做這樣的事情不工作的代碼在我的Django模板:如何直接在Django模板中訪問環境變量?
{% if os.environ.DJANGO_SETTINGS_MODULE == "settings.staging" %}
是這樣的可能嗎?我的解決方法是創建一個上下文處理器,使變量在所有模板中都可用,但想知道是否有更直接的方法來實現相同的結果。
我希望做這樣的事情不工作的代碼在我的Django模板:如何直接在Django模板中訪問環境變量?
{% if os.environ.DJANGO_SETTINGS_MODULE == "settings.staging" %}
是這樣的可能嗎?我的解決方法是創建一個上下文處理器,使變量在所有模板中都可用,但想知道是否有更直接的方法來實現相同的結果。
使用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',
...
]
}
}
]
否,環境是不是從模板訪問沒有明確將其添加 – dentemm
你也可以使用一個自定義模板標籤和過濾器,以獲得環境變量的模板。 –