Wagtail "Template-loader postmortem" 来源虽然存在

Posted

技术标签:

【中文标题】Wagtail "Template-loader postmortem" 来源虽然存在【英文标题】:Wagtail "Template-loader postmortem" the source exists though 【发布时间】:2016-05-01 20:53:16 【问题描述】:

好的,我的问题是模板加载器找不到确实存在的文件! 首先,这发生在我尝试更改网站的层次结构时:

我尝试将一种新的页面(MainPage)作为 Root 的第一个子页面,并将所有其他页面(Home 和 Events)设置在它下面。因此,以前位于根级别的 HomePage 现在设置为 MainPage 的子级,Events 是 HomePage 的子级。

所有这些都是我通过 wagtail 的管理界面完成的。 接下来我创建了一个 main_page.html 模板来加载 base.html 和使用的标签。

但现在变得很棘手:

由于一切运行良好,在层次结构更改后,模板加载器不再找到用于导航栏的文件: top_menu_children.html。这是我的层次结构:

- my-site/
     |  - my-app/
             |  - templatetags/
                       |  - my-app_tags.py
             |  - templates/
                       |  - my-app/
                              |  - main_page.html
                              |  - events_page.html
                              |  - home_page.html
                              |  - tags/
                                     |  - top_menu.html
                                     |  - top_menu_children.html
     |  - my-site/
             |  - templates/
                       |  - base.html

现在这里是 my-app_tags.py 的内容:

...
@register.inclusion_tag('my-app/tags/top_menu_chidren.html'
                        ,takes_context=True)
    def top_menu_children(context, parent):
        menuitems_children = parent.get_children()
        menuitems_children = menuitems_children.live().in_menu()
        return 
           'parent': parent,
            'menuitems_children': menuitems_children,
            'request': context['request'],
                      

最后这是我得到的错误的摘录:

Template-loader postmortem

Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.filesystem.Loader: ../my-site/my-site/templates/my-app/tags/top_menu_chidren.html (Source does not exist)
django.template.loaders.app_directories.Loader: .../my-site/my-app/templates/my-app/tags/top_menu_chidren.html (Source does not exist)

第二个应该匹配!!!!

如果看起来有点混乱,我很抱歉,但我试图描述上下文: 模板加载器正在正确的位置搜索一个确实存在但现在说它不存在的文件。

请帮忙,因为我真的不知道是什么问题,我只是需要一个线索。

【问题讨论】:

【参考方案1】:

您的模板标签注册中的模板名称有错别字:

@register.inclusion_tag('my-app/tags/top_menu_chidren.html'
                    ,takes_context=True)

它是top_menu_chidren.html,应该是top_menu_children.html,因为这是您的模板名称。

编辑

您的模板加载器搜索名为 top_menu_chidren.html 的模板,或者在您的 templates/my-app/tags 文件夹中,您有一个名为 top_menu_children.html 的模板。

【讨论】:

我的上帝,即使你回答了我,我也看不到丢失的“l”......非常感谢,有时我们需要再看看

以上是关于Wagtail "Template-loader postmortem" 来源虽然存在的主要内容,如果未能解决你的问题,请参考以下文章

获取动态图像 django / wagtail 的图像源

Wagtail:如何在管理员中设置计算字段(@property)标题

Django - 安装wagtail

Wagtail 页面中的字段权限

wagtail 2.0的迁移错误

Wagtail - 在页面上呈现带有相关片段和标签的数据时遇到问题