Hacker News new | ask | show | jobs
by Chiron1991 970 days ago
The core reason is (imo) that it's simply not possible to provide a Django admin equivalent in other frameworks because they lack the functionality to do so.

The basic dependencies for the Django admin are:

- authentication

- user permissions

- forms

- the ORM, to generate forms from model definitions and forward the admin's CRUD operations to the database

No other framework comes with all of these dependencies builtin. Yes, there are individual plugins to retrofit them, but then you would start building your extremely complex admin plugin on top of a lot of unaligned dependencies. Just one of them needs to go into a direction that doesn't align with your needs and your project is done. That's not a good base to start from. Django doesn't have this problem because the entire framework is built under one roof.

1 comments

Laravel has the foundation for these baked in. And they provided a paid admin packages if you don’t want to implement the rest.

My opinion is that once you add a dependency to your project, you own it just like your own code. This means understanding it enough to know how it’s built, but for the time being, someone else is maintaining it. And that a donation every once in a while should be made if it’s a core part of your product.