擅长:python、mysql、java
<p>这是将TableBlock放置在StructBlock中的结果。这方面的全部细节相当棘手(和<a href="https://docs.wagtail.io/en/stable/topics/streamfield.html#boundblocks-and-values" rel="nofollow noreferrer">explained in detail in the Wagtail docs</a>),但简短的版本是,当您访问StructBlock的各个字段时(在调用<code>{% include_block block %}</code>时,这是StructBlock的内置呈现的一部分),它只提供该块的底层数据(例如,CharBlock的字符串或TableBlock的数据字典),而不是知道如何将该数据呈现为HTML的完整块对象</p>
<p>只有一个字段的StructBlock实际上没有什么用处,因此更简单的解决方法是直接在StreamField中使用<code>TableBlock</code>:</p>
<pre><code>table = StreamField(
[
('table_horaire', TableBlock(table_options=new_table_options))
],
null=True,
blank = True,
)
</code></pre>
<p>但是,如果出于其他原因需要StructBlock,可以通过<code>bound_blocks</code>访问其中的<code>table</code>字段作为完整的可渲染块:</p>
<pre><code>{% for block in page.table %}
{% if block.block_type == 'table_horaire' %}
{% include_block block.bound_blocks.table %}
{% endif %}
{% endfor %}
</code></pre>