Install & Compatibility
Where this runs
tested against v3.0.4 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 78.4MB
glibcpy 3.10–3.920 runs
installs and imports cleanly · install 3.5s · import 0.000s · 79MB
77MB installed
● package 77MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
jazzmin
✓ INSTALLED_APPS = [
'jazzmin',
'django.contrib.admin',
# ... other apps
]
✗ INSTALLED_APPS = [
'django.contrib.admin',
'jazzmin',
# ... other apps
]
Jazzmin must be listed before `django.contrib.admin` in `INSTALLED_APPS` for the theme to apply correctly.
To integrate Django Jazzmin, install it via pip, then add 'jazzmin' to your `INSTALLED_APPS` in `settings.py`, ensuring it comes *before* `django.contrib.admin`. After running migrations, visit your Django admin site to see the new theme. You can extensively customize its appearance and functionality by defining a `JAZZMIN_SETTINGS` dictionary in your `settings.py` file.
# settings.py
INSTALLED_APPS = [
'jazzmin', # Add Jazzmin here, BEFORE django.contrib.admin
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Your other apps
]
# Optional: Customize Jazzmin settings
JAZZMIN_SETTINGS = {
"site_title": "My Custom Admin",
"site_header": "My Admin Dashboard",
"welcome_sign": "Welcome to the admin area",
"copyright": "My Company Ltd",
"topmenu_links": [
{"name": "Home", "url": "admin:index", "permissions": ["auth.view_user"]},
{"name": "Support", "url": "https://github.com/farridav/django-jazzmin/issues", "new_window": True},
{"model": "auth.User"},
]
}
# Terminal
# Run migrations and start the server
# python manage.py migrate
# python manage.py createsuperuser # If you don't have one
# python manage.py runserver
Debug
Known issues
breakingVersion 3.0.0 dropped official support for Python versions 3.6 & 3.7 and Django versions 2.2, 3.0 & 3.1. Ensure your project meets the new minimum requirements (Python >=3.10, Django >=4.0).fixUpgrade Python to 3.10+ and Django to 4.0+ before upgrading to django-jazzmin v3.0.0 or higher.
affects: >=3.0.0
breakingVersion 3.0.3 migrated all templates, CSS, and JS from Bootstrap 4 to Bootstrap 5. If you have custom templates or extensive UI tweaks, these may require updates (e.g., `data-toggle` to `data-bs-toggle`, `data-dismiss` to `data-bs-dismiss`).fixReview custom templates and CSS/JS for Bootstrap 4 specific attributes and update them to their Bootstrap 5 equivalents. Refer to Bootstrap 5 migration guides.
affects: >=3.0.3
deprecatedThe `dark_mode_theme` setting was replaced by `default_theme_mode` in v3.0.3. While it might still be treated as `default_theme_mode: 'auto'` with a deprecation warning, it's best to update your configuration.fixReplace `JAZZMIN_UI_TWEAKS['dark_mode_theme']` with `JAZZMIN_UI_TWEAKS['default_theme_mode'] = 'light' | 'dark' | 'auto'`.
affects: >=3.0.3
gotchaLogout functionality in Django Admin (especially with Django 5.0+) can sometimes fail with a 405 'Method Not Allowed' error when using Jazzmin. This is often due to the logout link being a GET request instead of a POST.fixOverride the `admin/base.html` template to wrap the logout link in a form that submits a POST request with `{% csrf_token %}`. affects: >=3.0.0 (especially with Django 5.0+)
gotchaThe 'Related Modal' feature for linked objects might be blocked by Django's Clickjacking Protection (`X_FRAME_OPTIONS`).fixSet `X_FRAME_OPTIONS = 'SAMEORIGIN'` in your Django settings to allow modals from the same origin.
affects: All versions
gotchaUsers have reported `collectstatic` failures and missing static files (e.g., `bootstrap.bundle.min.js.map`) after upgrading to 3.0.4, indicating potential issues with static file management.fixEnsure your static file configuration (`STATIC_ROOT`, `STATICFILES_FINDERS`) is correct. If issues persist, temporarily disable problematic `JAZZMIN_UI_TWEAKS` or refer to GitHub issues for workarounds or upcoming fixes.
affects: >=3.0.4
Upgrade
Version history
3.0.4latest on PyPI · released Mar 13, 2026
Audit
Dependencies
DjangorequiredCore dependency for a Django application.
PythonrequiredRequires Python 3.10 or newer.