Opened 12 months ago
Last modified 7 months ago
#34976 assigned Cleanup/optimization
Feature request: startproject and startapp should provide feedback — at Initial Version
Reported by: | Thibaud Colas | Owned by: | nobody |
---|---|---|---|
Component: | Core (Management commands) | Version: | dev |
Severity: | Normal | Keywords: | tutorial, command, startproject, startapp |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | yes |
Description
Initially proposed on the Django Forum – Feature request: startproject and startapp should provide feedback, where this received 4 "likes" and 5 comments saying this was a good enhancement.
I’d like to propose adding a success message / feedback when running the startproject and startapp commands. For people who are experienced devs it might be expected that a successful script exists without any output. For beginners, it can be very confusing.
This shows up as an issue for people who go through Django tutorials, as django-admin and startproject are often their first point of contact with the framework after installing Django.
From personal experience with Django Girls in particular, this is causing a common issue where people won’t realise the command has worked so will run it multiple times with different options (for example with or without a destination folder), which leads to at best confusing error messages, at worst multiple projects created within one-another.
Output options
Based on the feedback in the forum, I’d recommend starting with the simplest output of confirming the command worked and restating what happened.
Success one-liner
For example, running:
django-admin startproject mysite
This would display be:
Success! Created mysite at /absolute/path/to/where/startproject/created/mysite
I think adding this to startproject
or startapp
would make for a great PR (or two great PRs).
Files created
If the person taking this on has the skills, it’d be nice to also display a recap of what files were created. This will be relevant for both commands, and no matter what template was in use.
For example, running:
django-admin startproject mysite
We could show:
mysite ├── manage.py └── mysite ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py
This could be a separate PR if this proves complex. And if this kind of good-looking line art is too hard to do in Django, we could use simple indentation instead:
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py