However, I also dislike so much of it. The hacks I have used to contort it to do what I want I would be embarrassed for another developer to see...
Former Django fellow Carlton is working on a nice toolkit called "Neapolitan", it's early stage, but is designed to enable building CRUD views very quickly. There is a good chance that in time it, or a layer on top of it, will become the perfect successor to the Admin.
I actually want to try build an app just to see how far I can push it with Django admin and see how hacks it will end up.
You mentioned having a strong designer early in the project; did you have a specific name in mind? I'd love to see what they're up to and study some of their other projects.
Make 1 app called core or common of whatever and replace models.py with models/<namespace_or_domain>.py and import those into models/__init__.py
Everyone jumps into apps with foreign keys across app boundaries and it makes a mess of things from the start that doesnt buy you anything.
1 app. 1 set of migrations. Turn models, views, etc into a package instead of the single file module.
Its the one thing I wish the docs would prescribe and demonstrate for new project advice. .
every time i start a project with something other than django, i end up with django, but "homebrewed".
example: you start with flask. you need auth, so you add flask-login.
you need some database access, so you add SQLAlchemy (and its flask plugin). you also need some kind of admin page, so you add flask-admin.
when you are finished, you have a flask-django framework, but not as well integrated -- with django, you get ALL of those all of those out-of-the-box, everything is well oiled and well integrated.
so, yeah, imho django is an amazing backend framework that does its job perfectly, specially when you add some really good libraries (like django-rest-framework).
How does anybody keep up with this stuff, let alone create it all? :p
It's impressive how much you can do with these two tools. There's no need for an internal management dashboard or a BI tool. Just the admin and a bunch of notebooks.
(Obligatory note: we are a bootstrapped startup)
This approach allows you to have some very complex views in the Django admin without ever touching the internal of the Django admin itself. I used to waste hours trying to get the admin to do what I wanted until I figured out this neat little trick.
Deploys from today: https://imgur.com/a/3h7yYlO
Even though the admin is far from perfect it is a fantastic alternative to having operations people have to contend wit a database control panel.
Also, with Admin site you can limit their ability to screw things up massively.
The amount of stress and time waste you remove by giving them pretty user friendly admin with such low effort is astonishing.