Wagtail "Template-loader postmortem" 来源存在
Wagtail "Template-loader postmortem" the source exists though
好的,我的问题是模板加载器没有找到确实存在的文件!!
首先,当我试图更改我的站点的层次结构时发生了这种情况:
我尝试将一种新的页面(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)
第二个应该匹配 !!!!
对不起,如果看起来有点乱,但我试着描述一下上下文:
模板加载器正在正确的位置搜索确实存在但现在说不存在的文件。
请帮忙,因为我真的不知道问题出在哪里,我只需要一个线索。
您的模板标签注册中的模板名称有错别字:
@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
的模板。
好的,我的问题是模板加载器没有找到确实存在的文件!! 首先,当我试图更改我的站点的层次结构时发生了这种情况:
我尝试将一种新的页面(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)
第二个应该匹配 !!!!
对不起,如果看起来有点乱,但我试着描述一下上下文: 模板加载器正在正确的位置搜索确实存在但现在说不存在的文件。
请帮忙,因为我真的不知道问题出在哪里,我只需要一个线索。
您的模板标签注册中的模板名称有错别字:
@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
的模板。