I suggest that we add a django command as an alias for django-admin. This will make tools like uvx django startproject work, as well as make it a bit easier with tools like pipx.
I’d also like for us to add configuration to pyproject.toml to get the default settings module from the pyproject.toml. This will allow django (and django-admin) to replace python manage.py when it has been configured.
For both of these suggestions, you can take a look at @jeff 's django-cli-no-admin that only adds the alias or my django-cmd that also adds the configuration option.
Depending how fully committed we are to it, we could also update the docs to reflect the new name of django-admin, or update the docs to suggest the new command instead of python manage.py. We could even change the default template to no longer include the manage.py script at all, although when I once attempted that on my Heroku project I found that the buildpack depended on the presence of the manage.py to determine it was a Django project and automatically call collectstatic.
When I started down this road 10 years ago, I met some resistance and I didn’t push it, so I want to make sure I gather some community consensus on the right thing to do before I jump ahead to doing it. Which of the suggestions would you like to see Django do Right Now?
- Add a
djangocommand as an alias ofdjango-admin. - Add configuration to
pyproject.tomlfor the settings module. - Switch docs to use
djangoinstead ofdjango-admin. - Switch docs to use configured
djangoinstead ofpython manage.py. - Switch the default template to no longer include
python manage.py.
Historical references:
- The django-developers thread where I pitched a
djangocommand. - The pull request where I attempted the
djangocommand but pulled it out to getpython -m djangomerged.