【问题标题】:TEMPLATE_DIRS is missing in settings.py (django 1.6)settings.py (django 1.6) 中缺少 TEMPLATE_DIRS
【发布时间】:2013-12-19 16:06:36
【问题描述】:

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

【问题讨论】:

标签: django


【解决方案1】:

添加到 settings.py

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

【讨论】:

  • 你知道他们为什么改变它吗?
【解决方案2】:
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__))

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      应该是

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

      或者你可能会看到这样的错误:

      DeprecationWarning:TEMPLATE_DIRS 设置必须是一个元组。请 修复您的设置,因为自动更正现已弃用。
      self._wrapped = 设置(settings_module)

      对于 django >= 1.6 它是tuple

      【讨论】:

        【解决方案5】:

        使用下面给出的代码 sn-p。将其粘贴到 settings.py 文件的最后。

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

        这里BASE_DIR 表示你的项目目录,而不是settings.py 所在的内部目录。在BASE_DIR 中创建一个名为“templates”(不带引号)的目录,并将您的模板存储在该目录中。 Django 将使用os.path.join() 函数将模板目录加入BASE_DIR。希望这会有所帮助。

        【讨论】:

          【解决方案6】:

          正如我发布的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',
                      ],
                  },
              },
          ]
          

          【讨论】:

            猜你喜欢
            • 2012-08-10
            • 2014-09-11
            • 2011-12-06
            • 1970-01-01
            • 2012-06-03
            • 1970-01-01
            • 1970-01-01
            • 2015-06-30
            • 1970-01-01
            相关资源
            最近更新 更多