Перейти к основному содержимому

Таблицы

Добавлено в 1.0.1

TableOption — общий контракт таблицы. Его переиспользуют связанные сущности, информационные страницы и history-подобные представления. Полные таблицы полей: каталог options.

from django_chassis.enums import ButtonColor, RowActionDisplay
from django_chassis.options import TableActionOption, TableActionUrlKwargOption, TableColumnOption, TableOption

TableOption(
columns=[TableColumnOption(field='title', label='Title'), TableColumnOption(field='status', label='Status')],
fieldset_title='Items',
empty_message='No rows.',
selection_field='id',
actions=[
TableActionOption(
url_name='admin:catalog_book_change',
label='Open',
icon_class='fa-solid fa-arrow-right',
color=ButtonColor.PRIMARY,
display=RowActionDisplay.ICON,
object_field='id',
object_url_kwarg='object_id',
permission='view',
)
],
)

Колонки

TableColumnOption.field — dotted path на объекте строки. label — заголовок колонки.

Действия

TableActionOption собирает URL из url_name и kwargs, взятых из строки.

ПараметрТипПо умолчанию
url_nameимя URL Djangoобязательный
labelлокализованная строкаобязательный
icon_classкласс Font Awesomeобязательный
colorButtonColorPRIMARY
displayICON или BUTTONICON
object_fieldатрибут строки с id объектаid
object_url_kwargимя URL kwargobject_id
permissioncodename или NoneNone
condition_methodимя метода или NoneNone
url_kwargsдополнительные TableActionUrlKwargOption[]

TableActionUrlKwargOption(name=..., value=...)постоянный дополнительный kwarg для reverse(). Id объекта в строке по-прежнему берётся из object_field. Если в url_name нет :, Chassis добавляет имя текущего AdminSite.

Выбор строк

  • selection_field — атрибут строки как значение чекбокса
  • selection_disabled_field — если truthy, строку выбрать нельзя
  • selection_checked_field — если truthy, строка изначально отмечена

Пустое состояние

empty_message показывается, когда провайдер не вернул строк.

TableService и PaginationService рендерят и пагинируют эти таблицы. Напрямую их почти не вызывают.

См. также