A modern, extensible, premium Django admin framework.
Project description
django-admin-forge
django-admin-forge is a modern, customizable Django admin framework for serious SaaS and enterprise apps.
It keeps Django admin's reliability and model integration, while upgrading the UI/UX, theming, and developer customization surface.
Highlights
- Django-first admin replacement (
AdminSite-based) - Branded login and modern dashboard
- Customizable sidebar menus and app/model navigation
- Dark, light, and system themes
- Accent color system
- Improved changelist, filters, bulk actions, and empty states
- Improved add/edit form layout
Install
From PyPI:
pip install django-admin-forge
If you previously tried the django-forge distribution name, switch to this package: update INSTALLED_APPS and imports to django_admin_forge, rename settings DJANGO_ADMIN_FORGE, then pip uninstall django-forge (if installed) and install as above.
From a wheel or sdist you built locally:
python -m pip install build
python -m build
pip install dist/django_admin_forge-*.whl
Develop this repository (editable install, tests, lint):
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Publishing to PyPI
- Configure PyPI credentials (for example upload with
twineoruv publish). - Bump
versioninpyproject.toml. - Install build tools:
pip install ".[publish]"(orpip install build twine). - Run
python -m build, thentwine check dist/*andtwine upload dist/*.
Use TestPyPI first if you want a dry run: twine upload --repository testpypi dist/*.
Quick Integration
1) Add apps
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) Use Forge admin URLs
from django.urls import path
from django_admin_forge.site import forge_admin_site
urlpatterns = [
path("admin/", forge_admin_site.urls),
]
3) Configure DJANGO_ADMIN_FORGE (optional but recommended)
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,
}
Configuration Reference
Use the DJANGO_ADMIN_FORGE setting dictionary.
brand_name(str): Header brand name.brand_logo_text(str): Compact sidebar/logo text.brand_tagline(str): Login/subtitle branding.accent_color(str): Accent token used in key actions and highlights.default_theme("light" | "dark" | "system"): Initial theme mode.show_sidebar_search(bool): Sidebar search input visibility.enable_command_bar(bool): Header search/command input visibility.menu_icons(dict[str, str]): Overrides for app/model icons.menu_tabs(list[dict]): Sidebar menu tabs (top and bottom areas).dashboard_analytics_cards(list[dict]): Override dashboard KPI cards for marketing/business snapshots.
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
Example:
DJANGO_ADMIN_FORGE = {
"accent_color": "rose",
}
Sidebar Menus (menu_tabs)
By default, only Dashboard is shown.
You can fully configure sidebar tabs:
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": "Documentation", "url": "/docs/", "icon": "external-link"},
]
}
Each tab supports:
label(required)url_name(reverse name) orurl(direct URL)icon(optional, defaults tolayout-grid)
Menu Icon Overrides (menu_icons)
You can override app/model icons by key:
DJANGO_ADMIN_FORGE = {
"menu_icons": {
"auth": "shield", # app-level
"auth.user": "user", # model-level
"auth.group": "users",
"demo_app.customer": "building",
}
}
Resolution order:
app_label.model_namemodel_nameapp_label- built-in defaults
Dashboard Analytics Cards
You can supply custom KPI cards for the dashboard hero section using real model data:
DJANGO_ADMIN_FORGE = {
"dashboard_analytics_cards": [
{
"label": "Customers",
"app_label": "demo_app",
"model": "Customer",
"metric": "count",
"icon": "users",
"hint": "Total customer records",
},
{
"label": "Active customers",
"app_label": "demo_app",
"model": "Customer",
"metric": "count",
"queryset_filter": {"is_active": True},
"icon": "activity",
"hint": "is_active = true",
},
]
}
Each card supports:
label(required)app_labelandmodelfor dynamic model-based metricsmetric(currently supportscount)queryset_filter(optional exact Django ORM filters)value(optional fallback/manual value)iconhint(ortrend)
Demo Project (this repo)
python demo/manage.py migrate
python demo/manage.py createsuperuser
python demo/manage.py runserver
Open: http://127.0.0.1:8000/admin/
Status and Roadmap
Current implementation includes custom site templates, dashboard, apps page, collapsible sidebar, filters modal, improved forms/changelists, search helpers, and theme controls.
Planned next:
- Saved views/filters
- Dashboard widget API expansion
- Accessibility and keyboard navigation improvements
- Packaging/build pipeline polish for production release
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.0.tar.gz.
File metadata
- Download URL: django_admin_forge-0.1.0.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84b60c9c9a932a673be8bbf45ec481f15648a6dcfb5e5c191a5673ea6e730d3f
|
|
| MD5 |
8de48ec3f017238bfacb50f0415a2c08
|
|
| BLAKE2b-256 |
be25ef9fc1b35965ac837e2a636414557acc911b5441f087ff8f340a0a19f6d2
|
File details
Details for the file django_admin_forge-0.1.0-py3-none-any.whl.
File metadata
- Download URL: django_admin_forge-0.1.0-py3-none-any.whl
- Upload date:
- Size: 35.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47b6cebd7e14be6c1f7eebfcf6c538cbfbb9a7eba0fead1c743cd9d5c6e9ee54
|
|
| MD5 |
e3837e14697468304ede91a0bf959e37
|
|
| BLAKE2b-256 |
4962335b8648ab241e40fe98bf930dcd97e885a4004a107afa0b84e25f6334db
|