将 Django 模板设置从 1.7 更新到 1.8
Updating Django template settings from 1.7 to 1.8
所以我一直在修补升级到新版本的 Django (1.8)。我目前使用的是 1.7 版本,我正在努力让我的生产服务器收听 1.8.
中的新设置
自 1.8 起,任何 TEMPLATE_*
设置已根据 documentation 弃用,并已替换为 TEMPLATES
设置。
我正尝试像以前一样继续,但我希望在弃用时间线结束之前转到新设置。
在我的 1.7 设置中,我只有两个旧设置,现在已弃用如下:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += ("django.core.context_processors.request",)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
在新的 1.8 设置中,我有以下内容:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.request',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]
然而,当我使用这些设置时,我的生产服务器找不到模板文件,但我的本地工作正常。
EDIT:原来缺少 APP_DIRS
设置对 openshift 造成了严重破坏。我将所有模板都放在一个目录中,而不是在应用程序目录中,但这似乎解决了问题。
openshift 似乎没有读取 DIRS: setting unless APP_DIRS:
is set as True
这样做,问题就解决了。
所以我一直在修补升级到新版本的 Django (1.8)。我目前使用的是 1.7 版本,我正在努力让我的生产服务器收听 1.8.
中的新设置自 1.8 起,任何 TEMPLATE_*
设置已根据 documentation 弃用,并已替换为 TEMPLATES
设置。
我正尝试像以前一样继续,但我希望在弃用时间线结束之前转到新设置。
在我的 1.7 设置中,我只有两个旧设置,现在已弃用如下:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS += ("django.core.context_processors.request",)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
在新的 1.8 设置中,我有以下内容:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.request',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]
然而,当我使用这些设置时,我的生产服务器找不到模板文件,但我的本地工作正常。
EDIT:原来缺少 APP_DIRS
设置对 openshift 造成了严重破坏。我将所有模板都放在一个目录中,而不是在应用程序目录中,但这似乎解决了问题。
openshift 似乎没有读取 DIRS: setting unless APP_DIRS:
is set as True
这样做,问题就解决了。