如何在 Wagtail 中为 StructBlock 分配编辑面板?
How do I assign an edit panel for a StructBlock in Wagtail?
我有这样一个结构块:
class JumbotronBlock(blocks.StructBlock):
fullwidth= blocks.BooleanBlock(requried=False, help_text="Full width of the viewport")
heading= blocks.CharBlock(required=True, help_text="Heading for the jumbotron")
lead= blocks.CharBlock(required= False, help_text= "Lead text for Jumbotron")
link= LinkBlock(required=False)
bg_image= ImageChooserBlock(required=False)
bg_color= blocks.CharBlock(required=False, help_text="Hex value for background color")
classes= blocks.CharBlock(required=False, help_text="CSS classes for jumbotron")
styles= blocks.CharBlock(required=False, help_text="Custom style definitions for jumbotron")
class Meta:
template="streams/jumbotron_block.html"
icon= "placeholder"
label= "Jumbotron"
我的主页 Class 模型是这样的:
class HomePage(Page):
template= "home/home_page.html"
header= Jumbotron()
body = StreamField([
('Richtext', RichTextBlock()),
('CTA', CTABlock()),
('Section', SectionBlock()),
])
content_panels = Page.content_panels + [
??which panel here??('header'),
StreamFieldPanel('body'),
]
我应该使用哪个面板将 Jumbotron 添加到编辑面板?谢谢
StructBlock
不能用作模型字段 - 它仅在 StreamField 内有效。您需要将 jumbotron 块的字段定义为 Django model fields within your HomePage model, and - if you want to group them together visually in the edit view - place them in a MultiFieldPanel.
我有这样一个结构块:
class JumbotronBlock(blocks.StructBlock):
fullwidth= blocks.BooleanBlock(requried=False, help_text="Full width of the viewport")
heading= blocks.CharBlock(required=True, help_text="Heading for the jumbotron")
lead= blocks.CharBlock(required= False, help_text= "Lead text for Jumbotron")
link= LinkBlock(required=False)
bg_image= ImageChooserBlock(required=False)
bg_color= blocks.CharBlock(required=False, help_text="Hex value for background color")
classes= blocks.CharBlock(required=False, help_text="CSS classes for jumbotron")
styles= blocks.CharBlock(required=False, help_text="Custom style definitions for jumbotron")
class Meta:
template="streams/jumbotron_block.html"
icon= "placeholder"
label= "Jumbotron"
我的主页 Class 模型是这样的:
class HomePage(Page):
template= "home/home_page.html"
header= Jumbotron()
body = StreamField([
('Richtext', RichTextBlock()),
('CTA', CTABlock()),
('Section', SectionBlock()),
])
content_panels = Page.content_panels + [
??which panel here??('header'),
StreamFieldPanel('body'),
]
我应该使用哪个面板将 Jumbotron 添加到编辑面板?谢谢
StructBlock
不能用作模型字段 - 它仅在 StreamField 内有效。您需要将 jumbotron 块的字段定义为 Django model fields within your HomePage model, and - if you want to group them together visually in the edit view - place them in a MultiFieldPanel.