使用最小/最大子级实现Wagtail ListBlock模块

时间:2019-10-02 15:38:53

标签: wagtail wagtail-streamfield

我正在建立一个新的块类型供StreamField使用。它被称为FAQModule,它应该允许一个标题和1个或多个问题/答案对。

class FAQBlock(blocks.StructBlock):
    headline = blocks.TextBlock(help_text="Enter headline / question")
    text = blocks.TextBlock(help_text="Enter a description / answer ")

class FAQCardsWithListBlock(blocks.StructBlock):
    title = blocks.TextBlock(help_text="Enter FAQ title")
    questions = blocks.ListBlock(FAQBlock())

    class Meta:
        label = 'FAQ Block'
        icon = 'help'

它完全按预期工作,看起来像这样: enter image description here

但是我要强制执行最小/最大数量的Q / A块。我看到StreamBlock允许这样做,但是我和我的团队都同意ListBlock实现的接口正是我们想要的。因此,我正在根据StreamBlock implementation中的内容向我们的功能中添加最低/最高强制要求。我在提交时犯了错误,但是我无法使徽章显示在“内容”选项卡中,也无法使错误显示在块中。

有人对如何实现这一目标有想法吗?

1 个答案:

答案 0 :(得分:0)

我暂时没有使用StreamBlock,但是InlinePanel具有用于最小/最大项目关系的参数。

http://docs.wagtail.io/en/v2.0/reference/pages/panels.html#inlinepanel