Блок таблицы
Модуль TableBlock предоставляет тип блока HTML-таблицы для StreamField. Этот модуль использует handsontable 6.2.2, чтобы предоставить пользователям возможность создавать и редактировать HTML-таблицы в Wagtail. Блоки таблиц предоставляют поле для подписи для обеспечения доступности.
Установка
Добавьте "wagtail.contrib.table_block" в свой INSTALLED_APPS:
INSTALLED_APPS = [ ... "wagtail.contrib.table_block", ]
Основное использование
После установки модуль TableBlock может использоваться аналогично другим блокам StreamField в ядре Wagtail.
Импортируйте блок TableBlock from wagtail.contrib.table_block.blocks import TableBlock и добавьте его в объявление StreamField.
class DemoStreamBlock(StreamBlock):
...
table = TableBlock()
Затем, на вашей шаблонной странице, тег {% include_block %} (вызываемый либо на индивидуальном блоке, либо на значении StreamField в целом) отобразит все блоки таблиц, которые он обнаружит, как элемент HTML <table>:
{% load wagtailcore_tags %}
{% include_block page.body %}
Или:
{% load wagtailcore_tags %}
{% for block in page.body %}
{% if block.block_type == 'table' %}
{% include_block block %}
{% else %}
{# rendering for other block types #}
{% endif %}
{% endfor %}
Расширенное использование
Настройка по умолчанию
При определении блока TableBlock Wagtail предоставляет возможность передать необязательный table_options словарь. Словарь TableBlock по умолчанию выглядит так:
default_table_options = {
'minSpareRows': 0,
'startRows': 3,
'startCols': 3,
'colHeaders': False,
'rowHeaders': False,
'contextMenu': [
'row_above',
'row_below',
'---------',
'col_left',
'col_right',
'---------',
'remove_row',
'remove_col',
'---------',
'undo',
'redo'
],
'editor': 'text',
'stretchH': 'all',
'height': 108,
'language': language,
'renderer': 'text',
'autoColumnSize': False,
}
Настройки конфигурации
Каждый ключ в table_options словаре соответствует настройке handsontable. Эти настройки могут быть изменены для изменения поведения таблиц в Wagtail. Доступны следующие параметры:
- minSpareRows - Количество строк, которые добавляются в конец пустой сетки. Значение по умолчанию 0.
- startRows - Число строк по умолчанию для новой таблицы.
- startCols - Число столбцов по умолчанию для новых таблиц.
-
colHeaders - Может быть установлен в
TrueилиFalse. Эта настройка определяет, должны ли новые таблицы создаваться с заголовками столбцов. Примечание: это устанавливает поведение только для вновь созданных таблиц. Редакторам страниц можно переопределить это, установив флажок «Заголовок столбца» в редакторе таблицы в админке Wagtail. -
rowHeaders - Работает аналогично
colHeadersдля определения, должны ли новые таблицы создаваться с первым столбцом в качестве заголовка строки. Также, как иcolHeaders, этот параметр может быть переопределен редактором страницы в админке Wagtail. -
contextMenu - Включает или выключает контекстное меню Handsontable. По умолчанию установлено в
True. В качестве альтернативы можно предоставить список или словарь со [специфическими параметрами](https://handsontable.com/docs/6.2.2/demo-context-menu.html#page-specific). - editor - Определяет редактор, используемый для ячеек таблицы. Значение по умолчанию — текст.
- stretchH - Устанавливает стандартное горизонтальное изменение размера таблиц. Доступны значения «none», «last» и «all». По умолчанию TableBlock использует «all» для равномерного изменения размера столбцов.
-
height - Стандартная высота сетки. По умолчанию TableBlock устанавливает высоту в
108для оптимального отображения новых таблиц в редакторе. Это оптимизировано для таблиц сstartRowsустановленным в3. Если вы измените числоstartRowsв конфигурации, вам может потребоваться изменить настройкуheightдля улучшения стандартного отображения в редакторе. -
language - Настройка языка по умолчанию. По умолчанию TableBlock пытается получить язык из
django.utils.translation.get_language. При необходимости эту настройку можно переопределить здесь. - renderer - Настройка по умолчанию Handsontable для отображения содержимого ячеек таблицы.
-
autoColumnSize - Включает или отключает плагин
autoColumnSize. Значение по умолчанию TableBlock —False.
Полный список параметров handsontable можно найти на сайте Handsontable.
Изменение параметров таблицы по умолчанию
Для изменения параметров таблицы по умолчанию просто передайте новый словарь table_options при объявлении нового TableBlock.
new_table_options = {
'minSpareRows': 0,
'startRows': 6,
'startCols': 4,
'colHeaders': False,
'rowHeaders': False,
'contextMenu': True,
'editor': 'text',
'stretchH': 'all',
'height': 216,
'language': 'en',
'renderer': 'text',
'autoColumnSize': False,
}
class DemoStreamBlock(StreamBlock):
...
table = TableBlock(table_options=new_table_options)
Поддержка выравнивания ячеек
Вы можете активировать параметр alignment, установив пользовательский contextMenu, что позволит вам установить выравнивание при выборе ячейки. HTML-классы, установленные handsontable, будут сохранены в отображаемом блоке. Затем вы сможете применять собственные пользовательские правила CSS для сохранения стиля. Эти имена классов:
- Горизонтальное:
htLeft,htCenter,htRight,htJustify - Вертикальное:
htTop,htMiddle,htBottom
new_table_options = {
'contextMenu': [
'row_above',
'row_below',
'---------',
'col_left',
'col_right',
'---------',
'remove_row',
'remove_col',
'---------',
'undo',
'redo',
'---------',
'copy',
'cut'
'---------',
'alignment',
],
}
class DemoStreamBlock(StreamBlock):
...
table = TableBlock(table_options=new_table_options)
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/reference/contrib/table_block.html