Skip to main content

API Reference

Added in 1.0.1

Manual reference for the public exports. Import from the subpackages, not from django_chassis itself.

from django_chassis.mixins import ChassisAdminMixin, ChassisAdminSiteMixin
from django_chassis.options import SearchOption, RowActionsOption
from django_chassis.components import DashboardMetric
from django_chassis.views import PermissionAdminPage
from django_chassis.decorators import object_action

Mixins

ChassisAdminMixin

from django_chassis.mixins import ChassisAdminMixin

Must precede ModelAdmin in the MRO.

AttributeTypeDefault
optionslist[AdminOption][RowActionsOption()]
chassis_settingsSettingsSettings()
chassis_link_first_columnboolFalse
change_list_templatestradmin/chassis/change_list.html
change_form_templatestradmin/chassis/change_form.html

See ModelAdmin.

ChassisAdminSiteMixin

from django_chassis.mixins import ChassisAdminSiteMixin

Must precede AdminSite in the MRO.

Key attributes: chassis_brand_name, chassis_brand_logo_static_path, sidebar_items, chassis_page_classes, chassis_permission_options, dashboard_component_classes, dashboard_blocks, navbar_button_classes, user_menu_item_classes, show_recent_actions, include_users_module, include_users_sidebar.

Hooks: get_dashboard_service(), get_navbar_service(), get_chassis_page_service(), get_sidebar_service(), get_sidebar_items(), get_users_sidebar_section(), get_chassis_brand(), get_chassis_brand_badge(), get_chassis_footer_context().

Users module: Users and access.

ReadOnlyAdminMixin / NoDeleteAdminMixin

Deny add/change/delete, or only delete.

Options

All option classes are frozen dataclasses. Field-by-field purpose, defaults, validation, and UI region: Options catalog.

ClassRequired parameters
SearchOptionfields
FiltersOptionfields
DateHierarchyOptionfield
FieldTabsOptionfield, choices
ForeignKeyTabsOptiongroups or field+model
ForeignKeyTabGroupOptionfield, model
BadgeFieldsOptionfields
PrettyJsonOptionfields
DecimalAmountOptionfields
RowActionsOptionactions optional
RowActionOptionaction_type, label, color, icon_class
ListActionsOptionactions
ListActionOptionurl_name, label
ObjectActionsOptionactions
RelatedEntitiesOptionsections
RelatedEntityOptionslug, title, get_items_method, table
TableOptioncolumns
TableColumnOptionfield, label
TableActionOptionurl_name, label, icon_class
TableActionUrlKwargOptionname, value
ImportOptionpermission
ExportOptionpermission
Settingsall optional
PermissionOptionapp_label, model, codename, name
AdminPageGroupOptionslug, label, icon_class
SidebarSectionOptionslug, label, icon_class, items
SidebarModelItemOptionmodel
SidebarPageItemOptionpage_slug
SidebarLinkOptionslug, label, icon_class, url_name

ImportOption / ExportOption raise ValueError when permission is blank or when formats / filter_fields is an empty list.

Decorators

object_action

from django_chassis.decorators import object_action

@object_action(
description,
*,
permission=None,
confirmation=None,
color=ButtonColor.PRIMARY,
condition=None,
condition_method=None,
)

condition and condition_method are mutually exclusive. See Object actions.

Marks a ModelAdmin classmethod as a related-table provider. Signature: (cls, request, obj) -> QuerySet | Sequence.

Pages

from django_chassis.views import ...

ClassAccess
AdminPageabstract base
PermissionAdminPagepermission: PermissionOption starting with view_
PersonalAdminPageauthenticated staff; no navbar/dashboard groups
SuperuserAdminPageactive superuser
AdminInformationPagestructured sections / alerts / timelines
AdminObjectPage[T]list/object routes plus object actions

Dashboard components

from django_chassis.components import ...

ClassImplement
DashboardComponentas_dto() (abstract)
DashboardMetricget_value()
DashboardChartget_data() -> DashboardChartDataDTO
DashboardAlertvisibility + message
DashboardActionrouted action body
DashboardToggleActiontrue/false variants

Shared fields: slug, label, order, status.

DashboardBlockDTO(slug, title, block_type, component_slugs, row=1, group='default', size=4, order=100, is_global=False)

DashboardChartDataDTO(value, period_label, series, unit=None) DashboardChartSeriesDTO(label, color, points) DashboardChartPointDTO(label, value)value is Decimal.

Services

Public service classes are explicit package exports and can be imported from django_chassis.services:

from django_chassis.services import DashboardService, TableService

Permissions

from django_chassis.permissions import has_request_user_permission

has_request_user_permission(request, 'catalog.view_book') -> bool

Setting: CHASSIS_PERMISSION_CHECK = 'group_only' | 'user_has_perm'.

Enums (selected)

EnumMembers
RowActionTypeview, change, delete, history
RowActionDisplayicon, button
TabDisplaybuttons, select
PermissionCheckgroup_only, user_has_perm
ImportFormatJSON, XML
ExportFormatJSON, XML, CSV, XLSX
ImportBackend / ExportBackendPYTHON_QUEUE, INLINE, CELERY
DashboardBlockTypealerts, metrics, actions, metrics_and_actions, chart
DashboardComponentStatusactive, disabled, hidden, error
DashboardMetricResultTypesingle value / table / stacked
ButtonColorprimary, secondary, success, danger, …

See also