A modern, extensible, premium Django admin framework.
Project description
Django Admin Forge
Modern, customizable admin UI on top of Django’s admin: same models, permissions, and ModelAdmin patterns—upgraded layout, theming, dashboard, and navigation.
Requirements: Python 3.11+, Django 4.2–5.x (see pyproject.toml).
Developing the package or running the demo? See DEVELOPMENT.md.
More detail: docs/ (architecture, configuration snippets, roadmap).
Highlights
- Django-first
AdminSitereplacement (forge_admin_site) - Branded login, dashboard, applications browser
- Sidebar search, header command/search, collapsible sidebar
- Light, dark, and system themes; configurable accent colors
- Improved changelist (filters modal, bulk actions, empty states) and change forms
Install
From PyPI:
pip install django-admin-forge
If you previously used the django-forge distribution name: switch INSTALLED_APPS and imports to django_admin_forge, rename settings to DJANGO_ADMIN_FORGE, then pip uninstall django-forge if it was installed, and install this package instead.
Quick integration
1. Add the app
django_admin_forge should be listed before django.contrib.admin so its admin templates take effect.
INSTALLED_APPS = [
"django_admin_forge",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# your apps...
]
2. Mount the Forge admin site
from django.urls import path
from django_admin_forge.site import forge_admin_site
urlpatterns = [
path("admin/", forge_admin_site.urls),
]
3. Optional: DJANGO_ADMIN_FORGE
DJANGO_ADMIN_FORGE = {
"brand_name": "Forge Admin",
"brand_logo_text": "FORGE",
"brand_tagline": "Modern Django operations panel",
"accent_color": "green",
"default_theme": "system", # "light" | "dark" | "system"
"show_sidebar_search": True,
"enable_command_bar": True,
}
Run collectstatic in production like any Django app with packaged static files.
Configuration reference
Use the DJANGO_ADMIN_FORGE dictionary in Django settings.
| Key | Description |
|---|---|
brand_name |
Header / site title branding |
brand_logo_text |
Compact sidebar logo text |
brand_tagline |
Login and subtitle text |
accent_color |
Theme accent token (buttons, highlights) |
default_theme |
"light", "dark", or "system" |
show_sidebar_search |
Show sidebar search |
enable_command_bar |
Show header search / command input |
menu_icons |
Dict of icon overrides (see below) |
menu_tabs |
Sidebar tab entries (see below) |
dashboard_analytics_cards |
KPI cards backed by your models (see below) |
Accent colors
Supported accent_color values:
blue, green, amber, violet, emerald, teal, cyan, sky, indigo, purple, pink, rose, red, orange, yellow, lime, slate, gray, zinc, neutral, stone
DJANGO_ADMIN_FORGE = {
"accent_color": "rose",
}
Sidebar tabs (menu_tabs)
Default: Dashboard only. Add entries with url_name (Django URL name) or url (path).
DJANGO_ADMIN_FORGE = {
"menu_tabs": [
{"label": "Dashboard", "url_name": "admin:index", "icon": "layout-grid"},
{"label": "Applications", "url_name": "admin:forge-applications", "icon": "layers"},
{"label": "Users", "url_name": "admin:auth_user_changelist", "icon": "user"},
{"label": "Docs", "url": "/docs/", "icon": "external-link"},
]
}
label(required)url_nameorurlicon(optional; defaultlayout-grid)
Menu icon overrides (menu_icons)
Resolution order: app_label.model_name, then model_name, then app_label, then built-in defaults (see django_admin_forge.icons).
DJANGO_ADMIN_FORGE = {
"menu_icons": {
"auth": "shield",
"auth.user": "user",
"auth.group": "users",
"myapp.mymodel": "building",
}
}
Dashboard analytics cards
Configure KPI tiles with real data from your models (metric: count today; optional queryset_filter).
DJANGO_ADMIN_FORGE = {
"dashboard_analytics_cards": [
{
"label": "Orders",
"app_label": "orders",
"model": "Order",
"metric": "count",
"icon": "inbox",
"hint": "All orders",
},
{
"label": "Open orders",
"app_label": "orders",
"model": "Order",
"metric": "count",
"queryset_filter": {"status": "open"},
"icon": "activity",
"hint": "status = open",
},
]
}
Fields: label, app_label, model, metric, optional queryset_filter, value, icon, hint / trend.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_admin_forge-0.1.1.tar.gz.
File metadata
- Download URL: django_admin_forge-0.1.1.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fc25c099d646e16f327fa207f3c42824c058eab37ce29f6e73df5c5b4fca109
|
|
| MD5 |
98f4df380b74277e9285c7e364a3ebc2
|
|
| BLAKE2b-256 |
7039585c6784d46c399853938602cb25f9dd75acf72cf14ec7a1565831555d8a
|
Provenance
The following attestation bundles were made for django_admin_forge-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on cartel360/django-admin-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_admin_forge-0.1.1.tar.gz -
Subject digest:
3fc25c099d646e16f327fa207f3c42824c058eab37ce29f6e73df5c5b4fca109 - Sigstore transparency entry: 1174400896
- Sigstore integration time:
-
Permalink:
cartel360/django-admin-forge@41b1b439853d9d8b36a31673dd89df002b9372d3 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cartel360
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@41b1b439853d9d8b36a31673dd89df002b9372d3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file django_admin_forge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: django_admin_forge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 34.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c8c4dde73506a960fdf6483e25b1f51baf6e99cfb771babd4e7447d5b1d6b37
|
|
| MD5 |
053050675f5dea20a5d83509e7a4a738
|
|
| BLAKE2b-256 |
37cf33647edbcf10d6735f1a514e1a1bc859f4b6b361df9f6ccbdd02d79f5be7
|
Provenance
The following attestation bundles were made for django_admin_forge-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on cartel360/django-admin-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_admin_forge-0.1.1-py3-none-any.whl -
Subject digest:
8c8c4dde73506a960fdf6483e25b1f51baf6e99cfb771babd4e7447d5b1d6b37 - Sigstore transparency entry: 1174400918
- Sigstore integration time:
-
Permalink:
cartel360/django-admin-forge@41b1b439853d9d8b36a31673dd89df002b9372d3 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/cartel360
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@41b1b439853d9d8b36a31673dd89df002b9372d3 -
Trigger Event:
release
-
Statement type: