Wagtail为特定StreamField设置内容面板

2024-09-28 22:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的用户能够在wagtail freeform编辑器中定义列式布局

为此,我创建了一个流块,如下所示:

class ColumnSplitBlock(blocks.StreamBlock):
    class Meta:
        template = "common/column_split_block.html"
        icon = "grip"
        label = _("Columns")
        min_num = 1
        max_num = 2

然后我将其插入页面的Streamfield:

class NewsDetailPage(Page):
    template = "news/news_detail_page.html"
    parent_page_types = ['news.NewsListPage']

    content = StreamField([
        ("rich_text", blocks.RichTextBlock()),
        ("image", blocks.ImageBlock()),
        ("column_split", blocks.ColumnSplitBlock(
            [
                ("rich_text", blocks.RichTextBlock()),
                ("image", ImageChooserBlock()),
            ]
        )),
    ], verbose_name=_("Content"))

    content_panels = Page.content_panels + [
        StreamFieldPanel("content"),
    ]

但是,我想自定义StreamBlock中ColumnSplitBlock的显示

我特别想使用FieldRowPanel在管理编辑器中创建前面提到的专栏布局。这可能吗


Tags: htmlpagecolumntemplate布局content编辑器num