我正面临着与#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'),
不要误会我的意思,我可以让它发挥作用(使用坏道)。我想知道为什么会这样。
事先提前