I agree!
Let's put aside that being the OWNER of a database object means that by default is granted all privileges to it, and that owners aren't (typically) filtered by Row Level Security.
Google "Django Postgres Tutorial" and the first link creates a superuser:
https://www.enterprisedb.com/postgres-tutorials/how-use-post...
The second link does not, but then it goes on to `GRANT ALL PRIVILEGES ON DATABASE` to that user:
https://www.section.io/engineering-education/django-app-usin...
The documentation has a handy guide on creating superusers through the web interface, and touts what a great feature it is!
https://djangocentral.com/creating-super-user-in-django/
To a security conscious DBA, this is insanity. Yes, you can lock down a Django app just like PostgREST in fact, and add some code to do SET ROLE and all that just like PostgREST, but no one does because the documentation on database setup in the Django does doesn't even mention superusers:
https://docs.djangoproject.com/en/3.2/ref/settings/#std:sett...