django - 为什么 Django 1.10 强制在设置文件中定义模板?

标签 django

在 Django 1.9.8 项目中运行各种 manage.py 命令时,我收到以下警告:

/usr/local/lib/python2.7/dist-packages/django/template/utils.py:37:
RemovedInDjango110Warning: You haven't defined a TEMPLATES setting. You must 
do so before upgrading to Django 1.10. Otherwise Django will be unable to load 
templates. "unable to load templates.", RemovedInDjango110Warning)

为什么从 Django 1.10 开始需要这样做? 我主要使用 Django 来创建 API,通常没有理由使用生成 HTML 或其他内容的模板引擎。

最佳答案

RemovedInDjango110Warning: You haven't defined a TEMPLATES setting. You must do so before upgrading to Django 1.10. Otherwise Django will be unable to load templates.

这意味着如果您什么都不做,您将无法加载模板。如果您不使用模板,那么您不必担心这一点。

如果你想在 Django < 1.10 中消除此警告,可以将其设置为非空列表:

TEMPLATES = [{}]

至于为什么它现在是“必需的”(实际上在你的情况下不是),它在 Django 1.8 releases notes 中进行了解释。 :

As a consequence of the multiple template engines refactor, several settings are deprecated in favor of TEMPLATES

关于django - 为什么 Django 1.10 强制在设置文件中定义模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633575/

相关文章:

python - 如何在 Django 模型中指定字段元组的唯一性

mysql - Django - SQLite 与 MySQL 上的 DateTimeField 查询

django - Docker + django_extensions + jupyter : OSError: [Errno 99] Cannot assign requested address

python - 有没有人有将 Haystack/Solr 与 Django 集成的示例?

mysql - 迁移失败,出现警告 "' utf 8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release'

python - Django-Rest嵌套序列化OneToOne

python - 下载远程图像并将其保存到 Django 模型

python - 如何使用 django 在多模型中进行搜索

Django:验证具有排除字段的 ModelForm 中的 unique_together 约束

python - 基于ManyToManyField的过滤 - 如果列表中存在项目则获取记录