Когда вы спросили:
Я имел в виду блок, содержащий несколько изображений, что-то вроде блока?
Вот пример того, что вы могли бы попробовать, я не уверен, чего конкретно вы пытаетесь достичь, поэтому я оставил это довольно общим, но измените его, как вам нравится.
class GalleryBlock(blocks.StructBlock):
"""
Nameable gallery with multiple images.
"""
name = blocks.CharBlock(required=True)
images = blocks.ListBlock(
blocks.StructBlock([
("image", ImageChooserBlock(required=True)),
("alt_text", blocks.CharBlock(required=False, max_length=100)),
])
)
Тогда вам, конечно, нужно добавить это в ваш StreamField для body
.
Нечто подобное может быть.
body = StreamField([
('heading', blocks.CharBlock(classname="full title")),
('paragraph', blocks.RichTextBlock()),
('image', ImageChooserBlock()),
('gallery', GalleryBlock(icon='image')), # add this line
])
Надеюсь, это поможет вам увидеть, насколько гибкими и удивительными являются эти встроенные блоки и насколько замечательным может быть StreamField. Иногда вам нужно объединить их, чтобы создать определенную структуру для ваших нужд.