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 。不管怎样,现在一切都很好。