Ссылка на блок StreamField
В этом документе подробно описаны типы блоков, предоставляемые Wagtail для использования в StreamField, и как они могут быть объединены в новые типы блоков.
Изменено в версии 3.0: Добавлен обязательный аргумент use_json_field.
body = StreamField([
('heading', blocks.CharBlock(form_classname="title")),
('paragraph', blocks.RichTextBlock()),
('image', ImageChooserBlock()),
], block_counts={
'heading': {'min_num': 1},
'image': {'max_num': 5},
}, use_json_field=True)
Параметры блоков
Все определения блоков принимают следующие необязательные ключевые аргументы:
-
default- Значение по умолчанию, которое должен получить новый «пустой» блок.
-
label- Метка, отображаемая в интерфейсе редактора при ссылке на этот блок. По умолчанию используется удобочитаемая версия имени блока (или, в контексте, где имя не назначено, например, внутри
ListBlock, — пустая строка).
- Метка, отображаемая в интерфейсе редактора при ссылке на этот блок. По умолчанию используется удобочитаемая версия имени блока (или, в контексте, где имя не назначено, например, внутри
-
icon- Имя иконки, отображаемой для этого типа блока в меню доступных типов блоков. Список имен иконок см. в руководстве по стилю Wagtail, которое можно включить, добавив
wagtail.contrib.styleguideвINSTALLED_APPSвашего проекта.
- Имя иконки, отображаемой для этого типа блока в меню доступных типов блоков. Список имен иконок см. в руководстве по стилю Wagtail, которое можно включить, добавив
-
template- Путь к шаблону Django, который будет использоваться для отображения этого блока на переднем конце. См. Отображение шаблонов
-
group- Группа, используемая для категоризации этого блока. Все блоки с одинаковым именем группы будут отображаться вместе в интерфейсе редактора с именем группы в качестве заголовка.
Типы блоков полей
Типы структурных блоков
Поскольку StreamField принимает экземпляр StreamBlock в качестве параметра вместо списка типов блоков, это позволяет повторно использовать общий набор типов блоков без повторения определений:
class HomePage(Page):
carousel = StreamField(
CarouselBlock(max_num=10, block_counts={'video': {'max_num': 2}}),
use_json_field=True
)
StreamBlock принимает следующие дополнительные параметры как ключевые аргументы или Meta свойства:
body = StreamField([
# ...
('event_promotions', blocks.StreamBlock([
('hashtag', blocks.CharBlock()),
('post_date', blocks.DateBlock()),
], form_classname='event-promotions')),
], use_json_field=True)
class EventPromotionsBlock(blocks.StreamBlock):
hashtag = blocks.CharBlock()
post_date = blocks.DateBlock()
class Meta:
form_classname = 'event-promotions'
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/stable/reference/streamfield/blocks.html