Таблицы
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 | обязательный |
color | ButtonColor | PRIMARY |
display | ICON или BUTTON | ICON |
object_field | атрибут строки с id объекта | id |
object_url_kwarg | имя URL kwarg | object_id |
permission | codename или None | None |
condition_method | имя метода или None | None |
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 рендерят и пагинируют эти таблицы.
Напрямую их почти не вызывают.