4 ms·
It’s mostly just a UI for CRUD. And most systems are more complex, requiring UIs that operate on business logic. Rails and Phoenix also offer similar features
by michaelteter 3y ago
It’s mostly just a UI for CRUD. And most systems are more complex, requiring UIs that operate on business logic.
Rails and Phoenix also offer similar features (called scaffolds), but they are optional. I’m sure other frameworks have similar options.
Meanwhile, Django (like Python) sometimes has unconventional names and approaches to doing common things, so that makes the pair unpleasant and awkward for those of us with experience with several other tools and frameworks.
- Scarblac 3y ago> most systems are more complex Citation needed. We also have got a _lot_ of mileage out of it over the years.
- sojournerc 3y agoOk, how complex are _your_ systems? Simple table views are available through a number of database management software (dbeaver). What does django provide beyond that?
- acdha 3y agoWhat do you think is missing – your broad claim was made authoritatively enough that I’m assuming you had bad experiences somewhere?
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- Scarblac 3y agoYou can customize the admin so it only shows some tables, you can add actions that run things in the backend, the changes go through your Django models so they run validation etc. In short you really can give it to knowledgeable admins at customers to configure and admin applications with, in a way that you can't just let them edit database tables.
- deleted 3y ago[deleted]
- michaelteter 3y agoThis is kind of the point. Built in interfaces require tuning to fit a given situation. And the alternative is a starter/scaffold generated on demand and then extended, or just a fully custom built solution (which, if one’s design is good and the framework is good, is low effort). As with all frameworks, the freebies usually have less value in real world situations than we imagine they would. So choosing a framework based on the freebies is extra risky.
- simonw 3y agoThe Django admin is much more about data entry than viewing tables. A few key features in terms of data entry: - custom data validation - ability to edit foreign key and many-to-many relationships, with optional search - inline editing of related items - file uploads - custom "actions", where you can select a bunch of rows at once and then run custom logic to process them in some way
- rburhum 3y agoIt is not just a UI just for CRUD. You can easily add custom actions (calls to web services, export/imports, heavy background tasks that operate on a row or collections of rows), filters, related tables with custom behavior, display custom derived/calculated values, etc. Additionally, you can skin it easily - and in some cases, even create dashboards in a very simple manner. Check out out Django Unfold for an example https://github.com/unfoldadmin/django-unfold https://github.com/unfoldadmin/django-unfold
- michaelteter 3y agoOf course it’s possible to customize and extend, just as with other frameworks it is possible. We aren’t talking about closed systems here. Even writing a fully custom “admin” interface for one part of a business process isn’t usually much work if the system itself (which Django would also depend on) is reasonably designed. Writing something from scratch isn’t that difficult, and you get exactly what you need without fighting against the framework.
- POiNTx 3y agoYou can perfectly do business logic operations through the django Admin. It's extensible, and doesn't require a lot of effort to set it up.
- michaelteter 3y agoI never suggested it was not extensible in Django. But whether starting from a scaffold of another framework or building entirely custom, the effort in making custom, complex admin interfaces isn’t difficult. As with most software systems, the biggest part of the work is dealing safely with end users. Admin interfaces can be simpler because of this, and therefore they are less effort to make.