django 不加载应用程序模板
django not loading app templates
我查看了与此相关的其他 SO 问题,但 none 有所帮助。
我刚刚安装了一个应用程序并添加到设置中的 INSTALLED_APPS 变量。应用程序 django_messages 从它的每个模板扩展了一个 base.html 模板。
出于某种原因,django 没有递归地在应用程序目录中搜索此模板。
这是错误:
在模板 /Library/Python/2.7/site-packages/django_messages/templates/django_messages/inbox.html 中,第 1
行出错
{% extends "django_messages/base.html" %}
该文件位于:/Library/Python/2.7/site-packages/django_messages/templates/django_messages/base.html
但是 django 给出的搜索路径是:
Django 尝试按以下顺序加载这些模板:
使用引擎 django:
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django_messages/templates/base.html (Source does not exist)
因此,根据我对模板加载器的了解,它应该在 /Library/Python/2.7/site-packages/django_messages/templates/ 中搜索文件。但是文件名为 "django_messages/base.html" 所以我不明白为什么 django 在 django_messages/templates 中寻找 base.html 并忽略 django_messages 限定符。
我的所有其他模板(在我自己的应用程序中)都是这样设置的 app_name/templates/app_name/xxx。html 如 django 文档中所示。所以一切看起来都正确但不起作用。
任何帮助都感谢我厌倦了在这个问题上的努力。
谢谢。
所以我发现了为什么会这样...
文件 django_messages/base.html 试图扩展 "base.html"。我认为这是为了扩展您自己的 base.html 文件,但是我的 base.html 文件位于 app_name/base.html 下。
一旦我更改了 django_messages/base.html 中的路径,我就再也没有遇到任何错误。希望这对其他人有帮助。这令人困惑,因为它说错误是从文件 django_messages/inbox.html 扩展 "django_messages/base.html" 并且这些路径都是正确的,所以它似乎正在评估 [=18= 上的扩展].html 并且找不到此文件,但将回溯添加到 inbox.html 而不是我预期的 django_messages/base.html 。不管怎样,现在一切都很好。
我查看了与此相关的其他 SO 问题,但 none 有所帮助。
我刚刚安装了一个应用程序并添加到设置中的 INSTALLED_APPS 变量。应用程序 django_messages 从它的每个模板扩展了一个 base.html 模板。
出于某种原因,django 没有递归地在应用程序目录中搜索此模板。
这是错误: 在模板 /Library/Python/2.7/site-packages/django_messages/templates/django_messages/inbox.html 中,第 1
行出错{% extends "django_messages/base.html" %}
该文件位于:/Library/Python/2.7/site-packages/django_messages/templates/django_messages/base.html
但是 django 给出的搜索路径是:
Django 尝试按以下顺序加载这些模板:
使用引擎 django:
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django_messages/templates/base.html (Source does not exist)
因此,根据我对模板加载器的了解,它应该在 /Library/Python/2.7/site-packages/django_messages/templates/ 中搜索文件。但是文件名为 "django_messages/base.html" 所以我不明白为什么 django 在 django_messages/templates 中寻找 base.html 并忽略 django_messages 限定符。
我的所有其他模板(在我自己的应用程序中)都是这样设置的 app_name/templates/app_name/xxx。html 如 django 文档中所示。所以一切看起来都正确但不起作用。
任何帮助都感谢我厌倦了在这个问题上的努力。
谢谢。
所以我发现了为什么会这样...
文件 django_messages/base.html 试图扩展 "base.html"。我认为这是为了扩展您自己的 base.html 文件,但是我的 base.html 文件位于 app_name/base.html 下。
一旦我更改了 django_messages/base.html 中的路径,我就再也没有遇到任何错误。希望这对其他人有帮助。这令人困惑,因为它说错误是从文件 django_messages/inbox.html 扩展 "django_messages/base.html" 并且这些路径都是正确的,所以它似乎正在评估 [=18= 上的扩展].html 并且找不到此文件,但将回溯添加到 inbox.html 而不是我预期的 django_messages/base.html 。不管怎样,现在一切都很好。