dj-control-room-base
dj-control-room-base is a core library for Django Control Room panels. It provides the shared primitives that every panel needs: settings management, CSS injection, permission enforcement, admin sidebar integration, template context helpers, and MCP-style panel tools.
Official Django Control Room panels ship with this package as a dependency and build on these APIs rather than reimplementing them panel by panel.
Optionally, the package can also be mounted as a full panel in its own right: it ships a bundled design system reference UI and example patterns that are useful when building or theming new panels.
- Official site: djangocontrolroom.com
- Control Room app: dj-control-room
- Docs: django-control-room.github.io/dj-control-room-base
What this library provides
- Centralized CSS and permissions - a single
PanelConfigobject per panel drives CSS injection, staff/group/superuser checks, and settings merging across built-in, panel, hub, and project layers. - Admin sidebar integration -
PanelPlaceholderModelandBasePanelAdmingive any panel a sidebar entry with no extra migrations. - Template context helpers -
panel_config.get_context(request, ...)returns a ready-to-use context with CSS and Django admin variables included. - Entry-point discovery - panels register with the hub via a
PanelPluginsubclass and apyproject.tomlentry point. - Internal panel scaffold -
python manage.py dcr_startpanel <name>creates a minimal project panel app (dcr_-prefixed). For publishable panel repos, use the Cookiecutter template. - Panel tools - optional, permission-scoped callables the
dj-control-roomhub aggregates for AI agent and in-admin chat integrations. - Theme adapters - stylesheets that match panels to
django-unfold,django-jazzmin,django-grappelli,django-admin-interface, ordjango-admin-dracula, auto-selected fromINSTALLED_APPSwhenTHEME_AUTO_DETECTis enabled (default). Known unsupported skins get ageneral-lightorgeneral-darkpin instead of following OS color-scheme alone.
See the full documentation for configuration options and a guide to building your own panel on this library.
Requirements
- Python 3.9+
- Django 4.2+ (tested in CI across Django 4.2, 5.2, and 6.0)
Quick start
pip install dj-control-room-base
# settings.py
INSTALLED_APPS = [
...
"dj_control_room_base",
]
# urls.py
urlpatterns = [
path("admin/dj-control-room-base/", include("dj_control_room_base.urls")),
path("admin/", admin.site.urls),
]
python manage.py migrate
python manage.py runserver
Open /admin/ and sign in. A DJ CONTROL ROOM BASE entry appears in the sidebar and links to the panel at /admin/dj-control-room-base/.
See Installation for the complete walkthrough, Configuration for CSS/permission settings and theme adapters, and Building Panels for a guide to building your own panel on this library.
Contributing
git clone https://github.com/django-control-room/dj-control-room-base.git
cd dj-control-room-base
make install
make test_local
See Contributing for Docker setup, coverage, and the full Makefile reference.
License
MIT. See LICENSE.
Metadata
Release files for dj-control-room-base 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dj_control_room_base-1.6.0.tar.gz | 146.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dj_control_room_base-1.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 305.7 kB
Release files / dj_control_room_base-1.6.0.tar.gz
| Download URL | dj_control_room_base-1.6.0.tar.gz |
|---|---|
| Size | 146.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
250c11296baa7e84e4ea988783f70825598523d3fa30f8447db937dabb76b338
|
|
BLAKE2b-256 checksum How to use checksums |
d2acd045f54ea20f0187164c29baa542922991a90e47c267f58d980f949855a6
|
| 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 28, 2026.
Transparency logRelease files / dj_control_room_base-1.6.0-py3-none-any.whl
| Download URL | dj_control_room_base-1.6.0-py3-none-any.whl |
|---|---|
| Size | 159.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54e74e8655ff077f429722b956b2c574e5e5fb390da0882cfb41ebce1cab1551
|
|
BLAKE2b-256 checksum How to use checksums |
0674dd0471d559f0d1856d7bfea31b877bcef49c1dc5f014c4aa0c2db2cad9e8
|
| 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 28, 2026.
Transparency log