Django-Chassis
What Django-Chassis is
Django-Chassis is a declarative Admin chassis for Django. It gives a project a
structured AdminSite, composable ModelAdmin options, custom pages, a
dashboard contract, and a complete template overlay.
Domain models stay in the project. This package is the mechanism: mixins, frozen options, services, and templates that turn those declarations into Admin UI.
It is not a replacement for Django Admin, and it is not a place to put business
rules. You keep Model classes, permissions, and domain services in the
application. Chassis only assembles the admin shell around them.
Feature overview
- Getting started — install,
INSTALLED_APPSorder, first site and ModelAdmin. - How it works — mixins, options, services, and request flow.
- Admin site — brand, wrapping third-party admins, service hooks.
- Sidebar, navbar, and users — navigation plus stock Users/Groups, sessions, and the Admin journal.
- Permissions — group-only checks and
PermissionOption. - ModelAdmin — the
optionslist,Settings, and change-form layout. - Options catalog — every option: fields, defaults, validation, UI region.
- Changelist and presentation — list-page anatomy, search, filters, tabs, badges.
- Actions and object actions.
- Related entities and tables.
- Custom pages and information pages — access contracts, page anatomy, DTOs.
- Dashboard — index anatomy, blocks, live widgets, four-column grid.
- Import and export — formats, preview, storage, optional Celery.
- API reference — public classes, parameters, and examples.
How the admin UI is split
| Surface | What you declare | Where it is documented |
|---|---|---|
| Shell | brand, sidebar_items, navbar buttons, theme | Admin site, Sidebar, Navbar |
| Index | dashboard_component_classes + dashboard_blocks | Dashboard |
| Model list | SearchOption, filters, tabs, row/list actions, import/export | Changelist, Options catalog |
| Model object | @object_action, related-entity tables, presentation options | ModelAdmin, Object actions |
| Custom page | AdminPage subclass + one access contract | Custom pages |
| Report page | AdminInformationPage + DTOs | Information pages |
Requirements
Changed in 1.0.1- Python 3.13 or 3.14
- Django 6.0+
Celery is optional and only needed for the background import/export backend:
pip install 'django-chassis[celery]'