【发布时间】:2021-06-08 16:09:17
【问题描述】:
我正在尝试创建一个允许我添加多个块的块,其中每个块在大小估计器中都有不同的大小。
class SizeItem(blocks.StructBlock):
name = blocks.CharBlock(required=True)
image = ImageChooserBlock(required=True)
description = blocks.TextBlock(required=True)
class Meta: #noqa
icon = 'arrows-up-down'
label = 'Size Estimator Item'
class SizeEstimator(blocks.StructBlock):
description = blocks.TextBlock(required=False)
size_items = blocks.StreamBlock([
('size_item', SizeItem())
], required=False)
class Meta: #noqa
template = 'streams/size_estimator.html'
icon = 'list-ul'
label = 'Size Estimator'
问题是我需要将名称、图像和描述全部分组在 SizeEstimator 模板的不同区域中:
<div>
<div>
<ul>
<li>names</li>
</ul>
</div>
<div>
<div>
images
</div>
</div>
<div>
descritions
</div>
</div>
所以我不能在 SizeItem 上使用模板,因为无法将 SizeEstimator 模板中的各个部分分开。但如果我尝试:
<div class="se-wrap flexy">
<div class="se-sizes">
{% for item in self.size_items %}
<div class="se-size-btn">
{{item}}
</div>
{% endfor %}
</div>
</div>
我得到带有每个 SizeItem 属性名称和值的纯文本。我不能只提取像item.name 这样的值,因为输出是空白的。
有什么好方法可以将可排序块添加到另一个可以拼出可排序块内容的块?
【问题讨论】: