如何制作Wagtail Streamfield不需要?

时间:2017-11-16 18:37:25

标签: django django-models wagtail wagtail-streamfield

在下面的模型中,我想完全不需要bottom_content字段。我怎么能这样做?

class ServicePage(Page):
  top_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])
  bottom_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])

  search_fields = Page.search_fields + [
    index.SearchField('top_content'),
    index.SearchField('bottom_content'),
  ]

  content_panels = Page.content_panels + [
    StreamFieldPanel('top_content'),
    StreamFieldPanel('bottom_content'),
    InlinePanel('service_package', label='Packages')
  ]

2 个答案:

答案 0 :(得分:3)

StreamField还接受一个可选的关键字参数blank,默认为false;如果为false,则必须至少提供一个块才能使该字段有效。

自: - http://docs.wagtail.io/en/latest/topics/streamfield.html

答案 1 :(得分:0)

以下适用于我设置 blank=True。 Rollingers 的答案是一个死链接,因此为需要它的任何人添加代码示例。

class BlogPage(Page):
    body = StreamField([
        ('heading', blocks.CharBlock(form_classname="full title")),
        ('paragraph', blocks.RichTextBlock()),
        ('image', ImageChooserBlock()),
    ], blank=True)