Modernizing the look and feel of admin

Hi,

the builtin admin has always been very strong point for me when selling Django as the technology to choose. Some ten years ago the ratio of user experience compared to required developers time was just amazing. I feel though that the time has changed and I’m facing negative reception of admin from colleagues on new projects and my impression is that one of the key factors might be the look of the default theme and some UX related issues.

I know there were enhancements made (e.g. autocomplete_fields) but it feels like more comprehensive design update is needed to prevent making the admin look too oldschool. So I’d like to ask if there are other developers facing such reactions and there is a consensus for modernizing the look and feel of admin.

I am myself quite backend oriented so I can offer no help with this but as a huge admin fan I feel sorry to work on a project where even the simplest list/detail pages are written from scratch with maybe half of the functionality of admin just because they look better with material design

1 Like

There are third-party replacement admin themes you can use (see Awesome Django Admin). But I don’t believe anyone is working on these kinds of changes for Django itself.

I’m sad that people would dismiss a very practical out-of-the-box bit of tech because it doesn’t fit their preferred aesthetic though :frowning:

This is an area I’m interested in. IMO, the admin is one of Django’s killer apps, along with the ORM. I’m also probably too backend focused to do too much here.

On the other hand, the admin is pretty functional and incremental improvements sound fine. One of the biggest UX issues for me is the lack of decent navigation, though I have a PR to make this somewhat better (https://github.com/django/django/pull/12159).

I think the admin could be improved a lot further, but it does seem somewhat neglected relative to how useful it is. I think there are a few reasons for this. The first is that the admin has some pretty old and gnarly code. It’s written with class based views before Django’s Class Based Views existed, so they are kind of “their own thing”. One idea I’ve seen floated is to convert these to use Django’s CBVs proper, and this might be a useful thing to do if you’re backend focused and have some time.

Another issue is well, it’s a Python framework, I imagine most people are much more comfortable writing in Python than JavaScript / etc. I don’t think anyone really wants to integrate a whole other frontend framework for the admin to maintain. Even the current JQuery seems quite burdensome. I’d actually be more in favour of removing some of the JS components such as the date/time picker in favour of using HTML5 inputs - handing over the maintenance burden to the browser.

I think in general, if the code in the admin is simplified, both front and back we’ll see more contributions, more UX improvements, etc.

I wouldn’t be against a modern redesign with more modern JS, etc. but this will depend on the resolution of https://code.djangoproject.com/ticket/31032 - and how old we are willing to go on browser support in the admin.

1 Like