{"id":8940,"library":"django-admin-tools","title":"Django Admin Tools","description":"django-admin-tools is a collection of utilities for the Django administration interface, providing features like a customizable dashboard, menu system, and theming. The current version is 0.9.3. While it supports recent Django versions, its release cadence is slow, with the last release in 2021, suggesting a maintenance-focused development.","status":"active","version":"0.9.3","language":"en","source_language":"en","source_url":"https://github.com/django-admin-tools/django-admin-tools","tags":["django","admin","dashboard","menu","theming"],"install":[{"cmd":"pip install django-admin-tools","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core dependency for integration with the Django framework.","package":"Django","optional":false}],"imports":[{"symbol":"AdminToolsDashboard","correct":"from admin_tools.dashboard.models import Dashboard"},{"symbol":"AdminToolsMenu","correct":"from admin_tools.menu.models import Menu"}],"quickstart":{"code":"# settings.py\nINSTALLED_APPS = [\n    'admin_tools.theming',\n    'admin_tools',\n    'admin_tools.menu',\n    'admin_tools.dashboard',\n    'django.contrib.admin',\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n    'django.contrib.sessions',\n    'django.contrib.messages',\n    'django.contrib.staticfiles',\n    # ... your other apps\n]\n\n# urls.py\nfrom django.contrib import admin\nfrom django.urls import include, path, re_path\n\nurlpatterns = [\n    re_path(r'^admin_tools/', include('admin_tools.urls')),\n    path('admin/', admin.site.urls),\n    # ... your other url patterns\n]","lang":"python","description":"To integrate django-admin-tools, add its apps to `INSTALLED_APPS` in `settings.py` (ensure `admin_tools.theming` is first, and all `admin_tools` apps come before `django.contrib.admin`). Then, include `admin_tools.urls` in your project's `urls.py`, making sure it comes *before* `admin.site.urls` to avoid `NoReverseMatch` errors. Note the use of `re_path` for compatibility with Django 4.0+."},"warnings":[{"fix":"Ensure `re_path(r'^admin_tools/', include('admin_tools.urls'))` appears before `path('admin/', admin.site.urls)` in your project's `urls.py`.","message":"The order of URL inclusion for `admin_tools.urls` and `admin.site.urls` is critical. `admin_tools.urls` must always be included *before* `admin.site.urls` in your main `urls.py`.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Move `'admin_tools.theming'` to the beginning of your `INSTALLED_APPS` list in `settings.py`.","message":"For custom themes to apply correctly, `admin_tools.theming` must be the *very first* application listed in your `INSTALLED_APPS` setting.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Add `ADMIN_TOOLS_DASHBOARD = 'your_project.dashboard.CustomDashboard'` and `ADMIN_TOOLS_MENU = 'your_project.menu.CustomMenu'` to `settings.py`, replacing paths with your actual custom files.","message":"When customizing the dashboard or menu, you need to explicitly define `ADMIN_TOOLS_DASHBOARD` and `ADMIN_TOOLS_MENU` in your `settings.py` to point to your custom classes.","severity":"gotcha","affected_versions":"All versions"},{"fix":"When defining your project's `urls.py`, use `re_path(r'^admin_tools/', include('admin_tools.urls'))` instead of `url()`.","message":"While `django-admin-tools` 0.9.x supports Django 4.x and 5.x, the documentation and older examples often use `django.conf.urls.url`. For modern Django projects, use `django.urls.re_path` or `django.urls.path`.","severity":"gotcha","affected_versions":"Django 4.0+"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Change the order in `urls.py` to include `admin_tools.urls` *before* `admin.site.urls`.","cause":"`admin_tools.urls` was included after `admin.site.urls` in your project's `urls.py`.","error":"NoReverseMatch at /admin/ 'admin:index' is not a registered namespace!"},{"fix":"Ensure `'admin_tools.theming'` is the very first entry in your `INSTALLED_APPS` list in `settings.py`.","cause":"`admin_tools.theming` is not the first app in `INSTALLED_APPS`.","error":"Admin theme not applying or default Django theme showing."},{"fix":"Add all necessary `admin_tools` apps (`'admin_tools'`, `'admin_tools.theming'`, `'admin_tools.menu'`, `'admin_tools.dashboard'`) to your `INSTALLED_APPS` list in `settings.py`.","cause":"One or more required `admin_tools` apps are missing from `INSTALLED_APPS`.","error":"ModuleNotFoundError: No module named 'admin_tools.dashboard'"}]}