settings.py中缺少TEMPLATE_DIRS(django 1.6)

时间:2013-12-03 14:30:11

标签: django

我正在阅读Django 1.4之后的http://www.djangobook.com/en/2.0/chapter04.html,但我使用Django 1.6,所以如何在Django 1.6中设置模板目录,因为settings.py没有TEMPLATE_DIRS变量,为什么开发人员改变了这个? 提前谢谢。

6 个答案:

答案 0 :(得分:18)

添加到settings.py

from os.path import join
TEMPLATE_DIRS = (
    join(BASE_DIR,  'templates'),
)

答案 1 :(得分:5)

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR,  'templates'),
)

将此添加到settings.py。在django中定义1.6 BASE_DIR。否则将BASE_DIR定义为

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

答案 2 :(得分:3)

根据Django教程,您应该添加 TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')] 到您的 settings.py 文件(因此它是list而不是tuple

答案 3 :(得分:2)

应该是

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR,  'templates'),
)

或者您可能会看到如下错误:

  

DeprecationWarning:TEMPLATE_DIRS设置必须是元组。请   修复您的设置,因为现在不推荐使用自动更正   self._wrapped =设置(settings_module)

对于django> = 1.6,它是tuple

答案 4 :(得分:1)

使用下面给出的代码段。将其粘贴到settings.py文件的最后一个。

from os.path import join
TEMPLATE_DIRS = (
    join(BASE_DIR,  'templates'),
)

此处BASE_DIR表示项目目录,而不是settings.py所在的内部目录。创建一个名为" templates"的目录。 ({1}}内的(不带引号)并将模板存储在该目录中。 Django将使用BASE_DIR函数将模板目录加入BASE_DIR。希望这会有所帮助。

答案 5 :(得分:1)

当我发布https://stackoverflow.com/a/40145444/6333418时,您必须将其添加到TEMPLATES下的settings.py内的DIR列表中。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['[project name]/templates'], # Replace with your project name
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]