【问题标题】:How to import a Wagtail page on all the other wagtail pages如何在所有其他 wagtail 页面上导入 Wagtail 页面
【发布时间】:2019-07-15 23:30:18
【问题描述】:
我想在我的 Wagtail 页面上添加一些内容,并且我正在尝试在我的所有其他 Wagtail 页面上导入该 Wagtail 页面。我尝试这样做的原因是,如果将来我对内容进行更改,它应该始终反映在所有其他 Wagtail 页面上。
有没有办法可以在我所有其他 Wagtail 页面上导入 Wagtail 页面,如果有,请告诉我。
提前致谢!
我有一个具有以下配置的网站:
1) Django-2.0.8
2) Wagtail-2.2.4
【问题讨论】:
标签:
django
wagtail
wagtail-streamfield
【解决方案1】:
custom template tag 是实现此目的的好方法,因为它提供了一个在将结果输出到模板之前运行自定义 Python 代码(用于检索必要的数据)的地方,直接作为字符串或通过呈现模板.例如,如果您在 HomePage 模型上有一个 footer_text 字段,并且希望在每个页面上显示带有 slug 'home' 的 HomePage 的页脚文本,您可以定义一个自定义标签,如下所示:
@register.inclusion_tag('myapp/includes/footer.html')
def footer():
homepage = HomePage.objects.get(slug='home')
return {'footer_text': homepage.footer_text}
您还可以将 Wagtail 的 site settings 模块视为一种定义全局内容以在整个站点中重复使用的方法(尽管它缺少在页面模型上定义它所获得的一些功能,例如审核工作流程和修订历史记录)。