1. Alexey Lebedeff
  2. django-admin-tools


django-admin-tools / docs / configuration.rst

Configuring django-admin-tools

Basic configuration

Once installed, you can add django-admin-tools to any Django-based project you're developing.

django-admin-tools is composed of several modules:

  • admin_tools.theming: an app that makes it easy to customize the look and feel of the admin interface;
  • admin_tools.menu: a customizable navigation menu that sits on top of every django administration index page;
  • admin_tools.dashboard: a customizable dashboard that replaces the django administration index page.


In order to use django-admin-tools you obviously need to have configured your django admin site, if you didn't, please refer to the relevant django documentation.


It is required that you use the django 1.1 syntax to declare the django admin urls, e.g.:

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),

The old url style (r'^admin/(.*)', admin.site.root) won't work.

Required settings

First make sure you have the following template context processors installed:

    # default template context processors

    # django 1.2 only

    # required by django-admin-tools

Then, add the django-admin-tools modules to the INSTALLED_APPS like this:

    # ...other installed applications...


it is very important that you put the admin_tools modules before the django.contrib.admin module, because django-admin-tools overrides the default django admin templates, and this will not work otherwise.

django-admin-tools is modular, so if you want to disable a particular module, just remove or comment it in your INSTALLED_APPS. For example, if you just want to use the dashboard:

    # ...other installed applications...

Setting up the database

To set up the tables that django-admin-tools uses you'll need to type:

python manage.py syncdb

Adding django-admin-tools to your urls.py file

You'll need to add django-admin-tools to your urls.py file:

urlpatterns = patterns('',
    url(r'^admin_tools/', include('admin_tools.urls')),
    #...other url patterns...

Setting up the django-admin-tools media files

To do this you have three options:

  • the `staticfiles <http://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/`_ contrib application in Django 1.3. For Django 1.2 you'll have to install django-staticfiles from PyPi.

  • create a symbolic link to the django-admin-tools media files to your MEDIA_ROOT directory, for example:

    ln -s /usr/local/lib/python2.6/dist-packages/admin_tools/media/admin_tools /path/to/yourproject/media/
  • copy the django-admin-tools media files to your MEDIA_ROOT directory, for example:

    cp -r /usr/local/lib/python2.6/dist-packages/admin_tools/media/admin_tools /path/to/yourproject/media/

django-admin-tools will look for the media directory in the following settings variables (and in this order):

  • STATIC_URL: use this if you are using django-staticfiles;

Here's an example config if you are using django development server:


(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'}),


MEDIA_URL = '/site_media/'

Available settings variables

You can use this variable if you want to set the media url for django-admin-tools to something different from your MEDIA_URL.
The path to your custom menu class, for example "yourproject.menu.CustomMenu".
The path to your custom index dashboard, for example "yourproject.dashboard.CustomIndexDashboard".
The path to your custom app index dashboard, for example "yourproject.dashboard.CustomAppIndexDashboard".

The path to your theming css stylesheet, relative to your MEDIA_URL, for example:

ADMIN_TOOLS_THEMING_CSS = 'css/theming.css'