【问题标题】:django not loading app templatesdjango没有加载应用程序模板
【发布时间】:2017-04-26 14:23:24
【问题描述】:

我查看了与此相关的其他 SO 问题,但没有任何帮助。

我刚刚安装了一个应用程序并添加到设置中的 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 文档中所示。所以一切看起来都是正确的,但不起作用。

任何帮助都感谢我厌倦了在这方面敲打我的头。

谢谢。

【问题讨论】:

    标签: python django django-messages


    【解决方案1】:

    所以我发现了为什么会这样......

    文件 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”,并且这些路径都是正确的,所以看起来它正在评估 django_messages/base.html 上的扩展并且不能找到这个文件,但将回溯添加到 inbox.html 而不是我所期望的 django_messages/base.html 。不管怎样,现在一切都很好。

    【讨论】:

      猜你喜欢
      • 2016-06-04
      • 2013-10-11
      • 2017-03-30
      • 2021-05-01
      • 1970-01-01
      • 2011-08-10
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多