我是django和编程新手,我一直在尝试在我的网站上使用Wagtail
我现在被“桌面块”卡住了
我成功地正确设置了模型和块,但是当呈现html时,我得到的不是一个表,而是一个字典
这是我的密码:
{% for block in page.table %}
{% if block.block_type == 'table_horaire' %}
{% include_block block %}
{% else %}
<p>This is not working</p>
{% endif %}
{% endfor %}
这就是我在Html上得到的
{'data':[['Jour','Matin','Après-midi',None],'Lundi','9.00-12.00','14.00-17.00','Mardi','9.00-12.00','14.00-17.00','None],'Mercredi','9.00-12.00','Jeudi','9.00-12.00','14.00-17.00',None],'Vendredi 9.00-12.00','14.00-17.00','None],'cell'.[],“第一行是表格标题”:True,“第一列是标题”:False,“表格标题”:“Horaires”}
这是我的模型
class HomePage(Page):
body = RichTextField(blank=True)
table = StreamField(
[
('table_horaire', blocks.TableHoraire())
],
null=True,
blank = True,
)
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
StreamFieldPanel('table')
]
这是我的街区
from wagtail.core import blocks
from wagtail.contrib.table_block.blocks import TableBlock
new_table_options = {
'minSpareRows': 0,
'startRows': 6,
'startCols': 4,
'colHeaders': False,
'rowHeaders': False,
'contextMenu': True,
'editor': 'text',
'stretchH': 'all',
'height': 216,
'language': 'en',
'renderer': 'text',
'autoColumnSize': False,
}
class TableHoraire(blocks.StructBlock):
""" Home Page Hour block """
table = TableBlock(table_options = new_table_options)
我一直在看文档,我到处寻找类似的问题,但我找不到任何asnwers
任何帮助都将不胜感激
这是将TableBlock放置在StructBlock中的结果。这方面的全部细节相当棘手(和explained in detail in the Wagtail docs),但简短的版本是,当您访问StructBlock的各个字段时(在调用
{% include_block block %}
时,这是StructBlock的内置呈现的一部分),它只提供该块的底层数据(例如,CharBlock的字符串或TableBlock的数据字典),而不是知道如何将该数据呈现为HTML的完整块对象只有一个字段的StructBlock实际上没有什么用处,因此更简单的解决方法是直接在StreamField中使用
TableBlock
:但是,如果出于其他原因需要StructBlock,可以通过
bound_blocks
访问其中的table
字段作为完整的可渲染块:你的代码似乎不对,而且有错误。下面更正一条:
official docs
无论如何,谢谢你的回复
相关问题 更多 >
编程相关推荐