A declarative, fully typed chassis for building polished Django Admin applications.
Django-Chassis gives a project a structured AdminSite, composable
ModelAdmin options, custom pages, dashboard contracts, and a complete template
overlay. Domain models and business rules stay in the project; Chassis provides
the reusable Admin application layer around them.
Features
- Declarative configuration — compose the Admin with
ChassisAdminSiteMixin,ChassisAdminMixin, and immutableoptions. - A polished changelist — search, filters, date hierarchy, tabs, badges, pretty JSON, and decimal-amount presentation without ad-hoc template forks.
- Row, list, and object actions — permission-aware buttons, confirmation, and condition methods.
- Related data — independently paginated tables and typed repeatable inputs with native or application-owned form-data processing.
- Custom pages — permission-aware pages, personal pages, information pages, and timelines.
- Dashboard contracts — metrics, charts, alerts, actions, a four-column grid, and live refresh at
dashboard/live/. - Import/export — JSON/XML in, JSON/XML/CSV/XLSX out, preview/apply, history, optional Celery.
- Users and security — profiles, sessions, login-attempt limits, GeoIP country detection, and an Admin audit journal.
- Fully typed — ships
py.typedand is checked with Pyrefly in strict mode.
Installation
pip install django-chassis
Version 1.0.18 requires Python 3.13 or 3.14 and Django 6.0+.
Put 'django_chassis' before 'django.contrib.admin' so package templates overlay the stock Admin:
INSTALLED_APPS = [
'django_chassis',
'django.contrib.admin',
# ...
]
Background import/export is optional:
pip install 'django-chassis[celery]'
For a production HTTP server, Chassis also provides a Gunicorn management command:
python manage.py run_gunicorn --port=8000 --workers=2
Quick start
Create a Chassis AdminSite, register a model, and mount the site in urls.py:
from django.contrib.admin import AdminSite, ModelAdmin
from django.urls import path
from django.utils.translation import gettext_lazy as _
from django_chassis.mixins import ChassisAdminMixin, ChassisAdminSiteMixin
from django_chassis.options import RowActionsOption, SearchOption
from catalog.models import Book
class CustomAdminSite(ChassisAdminSiteMixin, AdminSite):
chassis_brand_name = _('My project')
chassis_brand_logo_static_path = 'img/logo.png'
admin_site = CustomAdminSite(name='admin')
class BookAdmin(ChassisAdminMixin, ModelAdmin):
options = [SearchOption(fields=['title', 'isbn']), RowActionsOption()]
admin_site.register(Book, BookAdmin)
urlpatterns = [path('admin/', admin_site.urls)]
ChassisAdminSiteMixinandChassisAdminMixinmust come before their Django classes in the MRO.
Documentation
Read the full guides, architecture notes, option reference, and dashboard contracts at django-chassis.rdd-lab.com.
Testing
uv sync --group dev
uv run pytest
License
Distributed under the MIT License.
Support the project
Metadata
Release files for django-chassis 1.0.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_chassis-1.0.18.tar.gz | 799.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_chassis-1.0.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / django_chassis-1.0.18.tar.gz
| Download URL | django_chassis-1.0.18.tar.gz |
|---|---|
| Size | 799.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d67316ae0dbcec9751e1205ddf4caa0940eabb41705875d56b772bede8b89700
|
|
BLAKE2b-256 checksum How to use checksums |
d4b1c73a959fbe39c066cada2f90327c62fc7ddcf1427d6f71070b06cc3fae30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / django_chassis-1.0.18-py3-none-any.whl
| Download URL | django_chassis-1.0.18-py3-none-any.whl |
|---|---|
| Size | 866.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a96e0a53e97f6075a295e6898036fbb5b55bfc362515e5fb79d099c965e06c35
|
|
BLAKE2b-256 checksum How to use checksums |
c482183ecf656a69a6740c4acb53d7108cc37c8b0842cce70a6c76b406b058db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency log