我的公司正在使用 Wagtail 为我们的网站构建强大的页面,可能使用 StreamField 组件。我们想知道 Wagtail 是否允许我们创建可重用的部分(可能在片段中)并将它们注入(inject)页面的可能性。
我附上了一张简单的图表,说明我想做什么。请注意,虽然片段是一种可能的建议,但它不需要特定的解决方案。
当然,我们的目标是创建一个元素,它可以嵌入到另一个页面中,但可以在一个地方更新并在使用它的任何地方级联。
例如,Wordpress 有一个插件以短代码格式提供此功能:
[embed id=123456]
最佳答案
您可以为流字段创建新 block ,比方说MySnippetBlock
然后使用SnippetChooserBlock选择您想要的片段。
MySnippetBlock(StructBlock):
title = CharBlock()
snippet = SnippetChooserBlock()
然后在您的 StreamBlock 字段中,您可以使用上面的自定义 block :
MyPage(Page):
stream_field_content = StreamField([('snippet_block', MySnippetBlock())])
...
或者,如果不需要附加附加信息,您可以直接在 StreamField 中使用 SnippetChooserBlock。
stream_field_content = StreamField([('snippet_block', SnippetChooserBlock())])
关于wagtail - 将片段注入(inject) Wagtail StreamField 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54655694/