将Django模板设置从1.7更新到1.8

时间:2015-04-15 14:17:06

标签: python django django-1.7 django-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',
            ],
        },
    },
]

但是,当我使用这些设置时,我的生产服务器无法找到模板文件,但我的本地工作正常。

编辑:原来错过的APP_DIRS设置正在对openshift造成严重破坏。我将所有模板放在一个目录中,而不是在应用程序目录中,但这似乎解决了这个问题。

1 个答案:

答案 0 :(得分:2)

似乎openshift不会读取DIRS:设置,除非APP_DIRS:设置为True

这样做,解决了问题。