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
django
command as an alias ofdjango-admin
. - Add configuration to
pyproject.toml
for the settings module. - Switch docs to use
django
instead ofdjango-admin
. - Switch docs to use configured
django
instead ofpython manage.py
. - Switch the default template to no longer include
python manage.py
.
Historical references:
- The django-developers thread where I pitched a
django
command. - The pull request where I attempted the
django
command but pulled it out to getpython -m django
merged.