Installation¶
Requirements¶
A virtual environment with Python 3.13 or 3.14.
A project with Django 6.0 or 6.1 admin enabled.
django.contrib.staticfilesand its usual static-file configuration.
Install the package¶
Until the release is available, install the wheel supplied by the maintainer (adjust the path):
python -m pip install /path/django_newadmin-0.1.0a1-py3-none-any.whl
After publication on PyPI, use:
python -m pip install 'django-newadmin==0.1.0a1'
Pinning the version selects this alpha explicitly. The package resolves Django within its supported range. If Django is already installed, review pip’s upgrade plan before changing a production environment.
Enable it in an existing project¶
In settings.py, place newadmin before django.contrib.admin:
INSTALLED_APPS = [
'newadmin',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Your applications...
]
Keep the request, auth, and messages context processors, the usual admin
middleware, and APP_DIRS=True (or the equivalent application loader). A project
created with startproject already includes this setup.
Do not change your ModelAdmin registrations or add theme middleware. The theme
has no migrations of its own. For a new project, apply Django’s migrations
and create an administrator:
python manage.py migrate
python manage.py createsuperuser
python manage.py check
python manage.py runserver
Mount the admin in urls.py:
from django.contrib import admin
from django.urls import path
urlpatterns = [path('admin/', admin.site.urls)]
Open /admin/. The theme styles login, dashboard, changelists, forms, widgets,
and auxiliary pages. NEWADMIN is optional:
NEWADMIN = {'SITE_HEADER': 'My site', 'DEFAULT_MODE': 'auto'}
Continue with configuration and dashboards.
Static files in production¶
Configure STATIC_URL, STATIC_ROOT, and static-file serving as you would for
Django. Here is an example using manifest storage:
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STORAGES = {
'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
'staticfiles': {
'BACKEND': 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage',
},
}
python manage.py collectstatic --noinput
Serve that directory with your static-file server; runserver is not a
production server. Do not replace the default storage if your project already
uses it for uploaded files. Keep your current static-files backend if it is
compatible with Django.
The wheel contains CSS, JavaScript, icons, and ECharts. Run collectstatic after
each update. LOGO and CUSTOM_CSS paths are resolved through staticfiles. With
a CDN on another origin, check external SVG loading and your deployment’s CORS
policy; the initial test matrix covers same-origin resources.
Disable or update¶
To disable the theme, remove newadmin from INSTALLED_APPS and remove consumer
overrides that depend on its templates. Django admin returns to its default
style. To update, install the desired version, review the changelog, rerun
collectstatic, and test your overrides, forms, and dashboards in staging.
Local repository demo¶
From a project checkout:
python -m venv .venv
.venv/bin/python -m pip install -e '.[dev,docs]'
.venv/bin/python demo/manage.py migrate
.venv/bin/python demo/manage.py seed_demo
.venv/bin/python demo/manage.py createsuperuser
.venv/bin/python demo/manage.py runserver
The demo uses SQLite for local development. Theme users do not need to install
or copy demo.