Django Accessibility in 2023 and Beyond
djangoproject.comOne thing I hate about using Django is being forced to use its models classes. Anyone found a better way of doing it?
I wish they would define a class agnostic public interface, then split out "Django models", "Django admin", and other components, so they could be used separately.
Most of the value of Django comes from the integration. You can roll your own alternative combination but every time I’ve looked at a project where they did that, it was worse than Django and they were spending a whole number multiple as much time on maintenance because none of the components were developed or tested together.
That’s not a slight against other projects like Flask or SQLAlchemy, just the need to take on more integration work. If you have a Django-shaped problem, you really want to ask whether you’re going to see so much upside from something else that it’s worth taking that extra work on.
I don't see how you could split the admin from Model classes since it's essentially a visual representation of the Model API. You could give the admin page custom Forms that aren't ModelForms and yes, the admin could make that easier (custom admin forms are a bit annoying to do currently), but then all you'd get from the admin is a navigation bar and breadcrumbs (and maybe search/filtering if you reimplemented the query builder). Might as well just make your own admin pages at that point.
Not really. I’ve found that if you’re going to use Django it’s best to go all in with Django, otherwise you’re better off just using fastapi or flask.