Вы не поделились определением своей модели, но я собираюсь догадаться, что это что-то вроде:
class MyPage(Page):
images = StreamField([
('image_list', blocks.ListBlock(blocks.ImageChooserBlock)),
])
Использование стандартного шаблона для ручное зацикливание значения StreamField какпоказанный в документах по трясогузке, это будет:
{% for block in page.images %}
{% if block.block_type == 'image_list' %}
{# at this point block.value gives you the images as an ordinary Python list #}
{# Output the first image using block.value.0: #}
{% image block.value.0 width-800 %}
{# Or loop over block.value manually with a 'for' loop #}
<ul>
{% for img in block.value %}
<li>{% image img width-800 %}</li>
{% endfor %}
</ul>
{% elif block.block_type == 'some_other_block' %}
...
{% else %}
...
{% endif %}
{% endfor %}
В этом случае у вас, вероятно, определен только один тип блока (image_list
), поэтому if block.block_type == 'image_list'
можно не указывать;но вам все равно понадобится внешний {% for block in page.images %}
, потому что StreamField по-прежнему определяется как список блоков, даже если у вас есть только один элемент в этом списке.