W | | ChoiceField未显示

时间:2018-04-14 08:03:30

标签: python django wagtail

我正面临着与#34; StructBlock"一起工作的某种难以理解的行为。和" ChoiceBlock"。出于某些原因,如果通过class-notation设计,ChoiceBlock不会显示在admin-menu中。

就像在admin-menu中没有显示任何选项块一样。只有文本块。

class CodeBlock(blocks.StructBlock):
    code = blocks.TextBlock(required=True)
    type = blocks.ChoiceBlock(choices=[
        ('markup', 'markup'), ('css', 'css')
    ], required=True),

    class Meta:
        template = 'home/blocks/code.html'

class HomePageIndex(Page):
    body = StreamField([('code', CodeBlock())])

    content_panels = Page.content_panels + [
        StreamFieldPanel('body'),
    ]

以下解决方案在我看来非常平等,但运作良好。我不明白为什么......由于我需要更多的结构场,我更喜欢使用类符号。

class HomePageIndex(Page):
    body = StreamField([
        ('code', blocks.StructBlock([
            ('code', blocks.TextBlock(required=True)),
            ('type', blocks.ChoiceBlock(choices=[
                ('markup', 'markup'), ('css', 'css')
        ], template='home/blocks/code.html'))
])

content_panels = Page.content_panels + [
    StreamFieldPanel('body'),

不要误会我的意思,我可以让它发挥作用(使用坏道)。我想知道为什么会这样。

事先提前

0 个答案:

没有答案