【问题标题】:Django app works fine, but getting a TEMPLATE_* warning messageDjango 应用程序运行良好,但收到 TEMPLATE_* 警告消息
【发布时间】:2015-12-03 10:32:48
【问题描述】:

当我使用 runserver 时,它会给出以下警告消息:

(1_8.W001) 独立的 TEMPLATE_* 设置在 Django 1.8 和 TEMPLATES 字典优先。你必须把 将以下设置的值放入您的默认 TEMPLATES 字典中: TEMPLATE_DEBUG。

引用 Django 文档:

"TEMPLATE_DEBUG 1.8 版后已弃用:设置“调试”选项 而是在 DjangoTemplates 后端的 OPTIONS 中。”

这是我的 settings.py,我尝试修复它是徒劳的:

DEBUG = True

TEMPLATE_DEBUG = DEBUG

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'myapp/templates')],
        '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',
            ],
            'debug': DEBUG,
            'DEBUG': DEBUG,
            'TEMPLATE_DEBUG': DEBUG
        },
    }, ]

我在这里错过了什么?

【问题讨论】:

  • 这只是一条消息。建议您不要使用 TEMPLATE_DEBUG。
  • @Gocht 谢谢。在 TEMPLATES 字典中输入此值的正确方法是什么?我刚刚注释掉了我添加到 dict 中的行,并且 debug 似乎工作正常。真的有必要在这个字典中添加任何东西吗?
  • 如果你想让你的代码保持最新,这是必要的。 @Alasdair 给了你一个很好的答案。

标签: python django django-1.8


【解决方案1】:

在模板设置的OPTIONS 字典中设置debug

DEBUG = True

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'debug': DEBUG,
        },
    },
]

然后从您的设置中删除此行以停止警告

TEMPLATE_DEBUG = DEBUG

有关如何更新模板设置的详细说明,请参阅Django docs

【讨论】:

    【解决方案2】:

    删除 APP_DIRS 并在模板中添加加载器。 示例:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]
            ,
            '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',
                ],
                'loaders': [
                   'django_jinja.loaders.AppLoader',
                    'django_jinja.loaders.FileSystemLoader',
                ]
            },
        },
    ]
    

    【讨论】:

      【解决方案3】:

      settings.py 中删除所有这些:

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

      然后在此处添加'templates'

          TEMPLATES = [
          {
              ...
              'DIRS': [here],
              ...
                  ],
              },
          },
      ]
      

      【讨论】:

        【解决方案4】:

        这是最好的解决方案:

        将此行更改为:

        TEMPLATES[0]['OPTIONS']['debug'] = True
        

        应该可以修复警告。

        我找到了here

        【讨论】:

        • /settings/dev.py 中将此行更改为:“TEMPLATES[0]['OPTIONS']['debug'] = True”
        【解决方案5】:

        在我的setting.pydjango中,没有这个脚本:

        TEMPLATE_DEBUG = DEBUG

        'debug': DEBUG, 'DEBUG': DEBUG, 'TEMPLATE_DEBUG': DEBUG

        也许您可以尝试删除它们并再次运行它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-16
          • 1970-01-01
          • 2020-03-05
          • 2020-08-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多