Code

Opened 6 years ago

Closed 6 years ago

#6789 closed (fixed)

[patch]django-admin.py warning on usage of python mod name as project name

Reported by: Garion Owned by: thejaswi_puthraya
Component: Core (Management commands) Version: master
Severity: Keywords: django-admin.py warn project name
Cc: thejaswi.puthraya@… Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

First of all, kudos on a very clear and thorough tutorial. The steps are small enough not to skip things, but large enough to get somewhere. I have a small suggestion for improvement though:

Tutorial01 says:

"You’ll need to avoid naming projects after built-in Python or Django components. In particular, this means you should avoid using names like django (which will conflict with Django itself) or site (which conflicts with a built-in Python package)."

I understood this, so I chose the name 'bdb' for my project, which is not a python keyword. This name led to a correct project start, but as soon as I ran ./manage.py runserver, there was an error about not being able to find bdb.settings. This in turn led me (and #django) to think there was a problem with module paths. It took us about half an hour before we figured out that 'bdb' is an existing python module, and that was the cause of the problems.

So, it would be even better if the above text also said how you can check this: "After you've chosen a name for your project, start the python interactive shell and type 'import projectname'. If this succeeds, the name you've chosen is already in use, and you must choose another name."

Or, alternatively, it would be great if django-admin.py startproject namehere tried "import namehere", and if that succeeds, tell the user to choose another name.

Attachments (1)

6789.diff (1.1 KB) - added by thejaswi_puthraya 6 years ago.
diff for the ticket #6789

Download all attachments as: .zip

Change History (5)

comment:1 Changed 6 years ago by Garion

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

Changed 6 years ago by thejaswi_puthraya

diff for the ticket #6789

comment:2 Changed 6 years ago by thejaswi_puthraya

  • Cc thejaswi.puthraya@… added
  • Component changed from Uncategorized to django-admin.py
  • Has patch set
  • Keywords django-admin.py warn project name added; tutorial removed
  • Owner changed from nobody to thejaswi_puthraya
  • Status changed from new to assigned
  • Summary changed from Suggestion for textual improvement tutorial01 to [patch]Suggestion for textual improvement tutorial01
  • Triage Stage changed from Unreviewed to Accepted

Added the patch that first checks if the module can be imported ie is a standard module or a module in the current directory. Next if it was not imported then it checks in the INVALID_PROJECT_NAMES to check if it exists in that list.

comment:3 Changed 6 years ago by thejaswi_puthraya

  • Summary changed from [patch]Suggestion for textual improvement tutorial01 to [patch]django-admin.py warning on usage of python mod name as project name

comment:4 Changed 6 years ago by mtredinnick

  • Resolution set to fixed
  • Status changed from assigned to closed

(In [7320]) Fixed #6789 -- Added some small amount of extra protection for learners trying
to pick a name for their project. Thanks, thejaswi_puthraya.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.