ブール値ブロックをWagtailモデルに追加し、チェックされている場合にのみコンテンツパネルフィールドを表示します。私はブール値のブロックを追加し、その値に基づいてテンプレートのコンテンツをレンダリングする方法を考え出しましたが、エディタのインターフェースをどのように制御するかは分かりません。ここに私のモデルです。私は、heldover_from、date chooserブロックを、holdover booleanがチェックされているときにだけ表示したいと思います。Wagtail Editorのブール値ブロックに基づいて追加のコンテンツパネルを表示する
class AgendaPage(Page):
author= models.CharField(max_length=255)
date = models.DateField('Post date')
agenda = StreamField([
('agenda_item', blocks.StreamBlock([
('item_title', blocks.TextBlock()),
('item_text', blocks.TextBlock()),
('mtg_doc', blocks.StructBlock([
('doc_description', blocks.TextBlock()),
('doc_link', blocks.TextBlock()),
('submitted_late', blocks.BooleanBlock(required=False, help_text='Submitted Late')),
('heldover', blocks.BooleanBlock(required=False, help_text='Held Over')),
('heldover_from', blocks.DateBlock(required=False, help_text="Held Over From")
]))
]
))
])
content_panels = Page.content_panels + [
FieldPanel('author'),
FieldPanel('date'),
StreamFieldPanel('agenda'),
]
(そして、私はこれを理解した後、私はそれが必要で作ることができるかどうかを知りたいが、heldoverがチェックされている場合にのみ、全体ではなくstreamblock用)
{% for block in self.agenda %}
{% if block.block_type == "agenda_item" %} {# will always be true, but included here for clarity #}
<li>
{% for subblock in block.value %}
{% if subblock.block_type == "item_title" %}
<h2>{{subblock.value}}</h2>
{% elif subblock.block_type == "item_text" %}
<p>{{subblock.value}}</p>
{% elif subblock.block_type == "mtg_doc" %}
<p><a href="{{subblock.value.doc_link}}">{{subblock.value.doc_description}}</a><br />
{% ifequal subblock.value.submitted_late True %}
(Submitted Late)
{% endifequal %}
</p>
{% endif %}
{% endfor %}
</li>
{% endif %}
{% endfor %}
現在のテンプレートコードを表示できますか? – gasman
私は現在のテンプレートコードを投稿しました – JohnnyP