wagtail - 将片段注入 Wagtail StreamField 接口
问题描述
我的公司正在使用 Wagtail 为我们的网站构建强大的页面,可能使用 StreamField 组件。我们想知道 Wagtail 是否允许我们创建可重用的部分(可能在片段中),并将它们注入到页面中。
我包括一个我想做的简单图表。请注意,虽然片段是一种可能的建议,但它不需要特定的解决方案。
目标当然是创建一个可以嵌入到另一个页面中的元素,但可以在一个地方更新并在任何使用它的地方级联。
例如,Wordpress 有一个以短代码格式提供此功能的插件:
[embed id=123456]
解决方案
您可以为流字段创建新块,假设MySnippetBlock
然后使用SnippetChooserBlock选择您想要的片段。
MySnippetBlock(StructBlock):
title = CharBlock()
snippet = SnippetChooserBlock()
然后在您的 StreamBlock 字段中,您可以使用上面的自定义块:
MyPage(Page):
stream_field_content = StreamField([('snippet_block', MySnippetBlock())])
...
或者,如果不需要附加附加信息,您可以直接在 StreamField 中使用 SnippetChooserBlock。
stream_field_content = StreamField([('snippet_block', SnippetChooserBlock())])
推荐阅读
- opencl - 如何将 OpenCL 内核编译为我物理上没有的 AMD GPU 的二进制文件?
- ionic-framework - Ionic 5,如何通过电容器获取设备的序列号?
- javascript - 单击鼠标更改几何位置
- vb.net - WinForms:有没有一种解决方案可以首先显示重要的用户控件属性?
- javascript - 单击链接,运行功能然后重定向
- flutter - Flutter SliverchildBuilderDelegate 没有显示任何内容
- nginx - 为什么 ingress-nginx-controller pod 总是与端点建立 IPv4 TCP 连接?
- javascript - 如何修复最大更新深度超出错误?
- r - 如何在 R 中匹配大数据框和 rbind
- groovy - 基于匹配计数值,需要将以下值捕获到变量中