Perhaps it's just something to do with my creative bloodline, but I realise that since I started using Django, I've been changing the default admin templates to what I want. In fact, what really excited me to Django was the fact that it had:
But why customise the admin UI at all? Simple - if you work with more than a few Django projects, and maybe have the tendency to work concurrently on them (aka 4-5 browser tabs open), aren't you confused by the homogenous 'Django Administration'?
Plus, one of the common threads in projects I received is that clients want a customised CMS, and replacing the header with the client's company logo or campaign header, together with a few changes to the CSS templates can add a more personalised touch to the whole package, and I'm sure little extras like that can go a long way.
Anyway, so how hard is it to actually customise the admin for a try? Not hard unless you really want to overhaul the entire template, else a quickie means 3 easy starters - header, stylesheets and icons.To follow along, you'll need to turn your attention to the Django folder:
/django/contrib/admin/templates/admin << template folder
/django/contrib/admin/media/ (css/img/...etc) << media folder
THE WAY OF THE QUICKIE.
Step 1 - The Header
The easiest to start off, yet plays an anchor role. First off, the default header is merely a block of text, which can be found inside base.html in the template. Open it up in your favorite text editor (I'm using TextMate for this article) and scroll down to line 21, where it says <div id="header">. Replace {% block branding %}{% endblock %} found in the nested div with id="branding" with your text or link to an image. If you're going to the image route, you'll also need to edit the #header/#branding ids inside base.css (media folder > css folder) to reflect the height and background color. (or just go along with a transparent PNG)
Step 2 - The Stylesheets
There're a couple of stylesheets in the media/css folder, but you'll only need to focus your attention to: base.css, forms.css and login.css for changing the color theme overall, while the rest of the stylesheets relate more to spacing and layout attributes. Base.css would be the starting point, I find it easy to rip off the main color code by taking a screen capture of the default Django admin in the browser before creating a swatch table from it. Then I do up my own color swatch table and run a find & replace for the hex color codes.
Login.css would be the tweak next so that you can put a miniature version of your logo for the login box, change the footer and so forth. This is done in tandem with login.html from the templates folder, and things to swap for example are: page title, footer, placement of the box, as well as even adding custom classes to spice up the text input fields and changing the value for the submit button.
Step 3 - The icons
You'll find the cute little icons that come with the default template inside media/img/admin folder. It's quite self-explanatory just by looking at the thumbnails, and I find I have a few options I can take. One is to desaturate the colors from the icons before laying them with matching colors to my swatch table using a program like say, Photoshop or GIMP. Another would be to get an entire new icon set from a place like say, iStockphoto and then doing a replace without changing the filenames. Last but not least, you can go ballistic and do your own icons, and tweak their behaviors with some jQuery functions to mimic things like fade in and so forth (lot of work here though!)
TIP: This is a worthy venture to investigate if you have customised apps and wish to have a nice icon to differentiate them (anything beyond 5 apps and they start to be hard on the eyes for non tech people)
So it's really your call as to how far you wish to take this, but even following the shortest route can yield quite satisfying results, and best of all, you'll never have to get confused with working in concurrent windows!
Remember, the average user for a customised CMS has no cares for how powerful or modular Django is, they're more concerned and likely to be impressed with a 'cool' UI (hence the success of Wordpress in broad terms).