Spec-Zone.ru › Wagtail

Ссылка на блок 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 вашего проекта.
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API