API Reference
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.
| Attribute | Type | Default |
|---|---|---|
options | list[AdminOption] | [RowActionsOption()] |
chassis_settings | Settings | Settings() |
chassis_link_first_column | bool | False |
change_list_template | str | admin/chassis/change_list.html |
change_form_template | str | admin/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.
| Class | Required parameters |
|---|---|
SearchOption | fields |
FiltersOption | fields |
DateHierarchyOption | field |
FieldTabsOption | field, choices |
ForeignKeyTabsOption | groups or field+model |
ForeignKeyTabGroupOption | field, model |
BadgeFieldsOption | fields |
PrettyJsonOption | fields |
DecimalAmountOption | fields |
RowActionsOption | actions optional |
RowActionOption | action_type, label, color, icon_class |
ListActionsOption | actions |
ListActionOption | url_name, label |
ObjectActionsOption | actions |
RelatedEntitiesOption | sections |
RelatedEntityOption | slug, title, get_items_method, table |
TableOption | columns |
TableColumnOption | field, label |
TableActionOption | url_name, label, icon_class |
TableActionUrlKwargOption | name, value |
ImportOption | permission |
ExportOption | permission |
Settings | all optional |
PermissionOption | app_label, model, codename, name |
AdminPageGroupOption | slug, label, icon_class |
SidebarSectionOption | slug, label, icon_class, items |
SidebarModelItemOption | model |
SidebarPageItemOption | page_slug |
SidebarLinkOption | slug, 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.
chassis_related_items
Marks a ModelAdmin classmethod as a related-table provider. Signature:
(cls, request, obj) -> QuerySet | Sequence.
Pages
from django_chassis.views import ...
| Class | Access |
|---|---|
AdminPage | abstract base |
PermissionAdminPage | permission: PermissionOption starting with view_ |
PersonalAdminPage | authenticated staff; no navbar/dashboard groups |
SuperuserAdminPage | active superuser |
AdminInformationPage | structured sections / alerts / timelines |
AdminObjectPage[T] | list/object routes plus object actions |
Dashboard components
from django_chassis.components import ...
| Class | Implement |
|---|---|
DashboardComponent | as_dto() (abstract) |
DashboardMetric | get_value() |
DashboardChart | get_data() -> DashboardChartDataDTO |
DashboardAlert | visibility + message |
DashboardAction | routed action body |
DashboardToggleAction | true/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)
| Enum | Members |
|---|---|
RowActionType | view, change, delete, history |
RowActionDisplay | icon, button |
TabDisplay | buttons, select |
PermissionCheck | group_only, user_has_perm |
ImportFormat | JSON, XML |
ExportFormat | JSON, XML, CSV, XLSX |
ImportBackend / ExportBackend | PYTHON_QUEUE, INLINE, CELERY |
DashboardBlockType | alerts, metrics, actions, metrics_and_actions, chart |
DashboardComponentStatus | active, disabled, hidden, error |
DashboardMetricResultType | single value / table / stacked |
ButtonColor | primary, secondary, success, danger, … |