4 ms·
Hi, one of the creators of Django here (and of the admin specifically). It was definitely not intended to be ugly — the first version was designed by Wilson Mi
by adrianh 3y ago
Hi, one of the creators of Django here (and of the admin specifically).
It was definitely not intended to be ugly — the first version was designed by Wilson Miner, a great designer. In fact, an argument could be made that a key reason for Django's early success was that the admin was so nicely designed. Same goes for the framework's website in general; the standard open-source project website in that era was really plain and uninspiring.
To answer "Why is the Django admin ugly?", I think there are two separate issues:
* A gradual bolting on of admin features without enough thought given to visual consistency and elegance. Particularly, the left sidebar (in the screenshot of the original article) was a later addition and looks unpolished.
* A misunderstanding of the Django admin's goals. It's meant to be for "internal use" — that is, it's meant to be used by people who operate your website, not by people who visit your website. Ever since we open-sourced Django, many people (through either laziness or lack of understanding) misunderstood the point of the Django admin, thinking it's meant to be for end users. It is not and never was.
- ThibWeb 3y agoThanks for chiming in! Do you think it’s desirable for it to stay "ugly" then if it’s for "internal use"? I can understand the admin isn’t meant to have a "consumer" UI but it still feels like there are lots of user experience & accessibility improvements needed to bring it in line with modern standards (WCAG for example).
- Multicomp 3y agoThanks for weighing in. I love it when the subjects and experts of the article at hand weigh in. HN at its finest!
- BeetleB 3y ago> It was definitely not intended to be ugly And it isn't! I started using Django in the days when it was in perpetual Beta - back in 2008. It was not ugly by the standards of those days. After over a decade's hiatus, I'm back to using Django for paid work. And I still find it "not ugly". Sure, it doesn't have bells and whistles, but it's pretty functional, and doesn't offend my aesthetics at all! PS. I owe a lot to you, Jacob and Simon - thanks for Django! My funding in grad school was drying up, and I needed a side job out of my department to help pay bills. And fortunately, one team at the university was looking for a Django programmer. I was not a CS major, but knew enough programming to get that job.
- jmorenoamor 3y agoThe admin has always served me as a great bootstrap for my applications. Thanks for yout work!
- Izkata 3y ago> many people (through either laziness or lack of understanding) misunderstood the point of the Django admin, thinking it's meant to be for end users. It is not and never was. This just confuses me. It's called "admin" for a reason...
- rkuykendall-com 3y agoI can say, in my case, it's lazyness. When you finish your DB and Admin bootstrapping it's easy to look at a long list of features your end users want and think "all of this stuff can be done by the admin I already built". The issue is that, actually it can't, you are just overwhelmed trying to get do the bootstrap step. I found one great middle step is a `simple_form.html` template and using Django Forms to quickly and easy generate a lot of CRUD views. You can also use a `simple_delete.html` confirmation template to handle that. These templates can be used on any number of pages. Then, as your app matures, you can add more custom templates and maybe eventually switch to Django Rest Framework and an SPA, if it fits.
- agumonkey 3y agoHow much should one invest to stretch the django admin framework classes before quitting ? Have you ever made big modifications/subclasses to turn the admin into something complex and tailored to a job ? (still talking about backoffice duties, not visitors frontend)
- angrymachine 3y agoThanks for leaving a comment! Author here. "Misunderstanding" is right on the money. It's a fantastic tool, and one of the best features of Django in my opinion. Personally I don't think it's ugly. But at the same time, if I gave it to a client, they would immediately turn up their nose to it because it does not look like a 2023 UI. People, and their managers, and their manager's managers are vain that way. And those people are not the target of the Django admin. We now have a new generation of developers who learned on fancy JS frameworks, SaaS dashboards, A.I.-enabled tools, etc. These new devs learning Django now in 2023 have never seen anything like the Django admin. So with this article I'm just trying to pass on the tribal knowledge as to when to use it, and why it is what it is.
- cl42 3y agoHi adrianh -- just want to say 'thank you' for all the work you put into Django. I use Django exclusively for all my product work and it's... amazing... ... and I was recently consulting on a project where we had to make extensive additions to the Admin views and it was amazingly versatile, flexible, and pleasantly surprising in supporting everything we needed. Is a cast iron skillet beautiful? Probably not, yet it has stood the test of time and people swear by it. I feel the same way about Django Admin. :)
- TheNewsIsHere 3y agoI love the Django admin. I am not a big fan of the highly consumerized, low density, emoji and vague messages everywhere design aesthetic that we have widely accepted. I understand why it exists, but I will always choose something that looks like the Django admin first.