Opened 12 months ago

Last modified 7 months ago

#34976 assigned Cleanup/optimization

Feature request: startproject and startapp should provide feedback — at Version 1

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 (last modified by Thibaud Colas)

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

The command would display:

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

Change History (1)

comment:1 by Thibaud Colas, 12 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top