Opened 4 years ago

Closed 4 years ago

#31554 closed Cleanup/optimization (invalid)

Tutorial 01: mysite/urls.py location confusion

Reported by: Paweł Brodacki Owned by: Desmond Nyamador
Component: Documentation Version: 2.2
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

Hi guys,

Working through the 2.2 tutorial I got momentarily stuck at

Go to http://localhost:8000/polls/ in your browser, and you should see the text “Hello, world. You’re at the polls index.”, which you defined in the index view.

What I got was a 404. Debug information of the built-in web server indicated that it wasn't aware of the polls/ path. Copy-paste of .py code from the tutorial to the editor didn't help.

The issue was I created urls.py in the outer (/somepath/mysite/), and not the inner (/somepath/mysite/mysite) mysite directory. Once I understood what the problem was, the web server error message made sense, which was nice ;)

Documentation is consistent, in a sense that it tells the reader to create urls.py as polls/urls.py and then as mysite/urls.py, so it can be concluded that the author meant mysite/polls and mysite/mysite, respectively. However, the fact, that django uses the same directory name at two levels is a trap for newbies.

I would like to propose two possible fixes to this issue:

  1. After the contents of mysite/urls.py file add Your mysite directory should now look like:(…) followed by the directory listing, similarly to how polls/ directory content is shown earlier in the tutorial.
  2. Add 'If you see Not Found: /polls/ error message in the server output then there's a problem with your mysite/urls.py file. Make sure you edited the file in the inner mysite directory (at the same filesystem level as the polls directory). , or similar text to the "Page not found" help inset.

Any of them should help the stray reader.

Other versions of the tutorial (I checked 3.0 and dev) use the same wording and might benefit from the change.

Change History (7)

comment:1 by Desmond Nyamador, 4 years ago

Owner: changed from nobody to Desmond Nyamador
Status: newassigned

comment:2 by Desmond Nyamador, 4 years ago

Resolution: fixed
Status: assignedclosed
Version: 3.02.2

Hi, I've gone through the documentation and it says at a point "To create a URLconf in the polls directory, create a file called urls.py. Your app directory should now look like:". I believe specifying the word "app" says it all.

in reply to:  2 comment:3 by Paweł Brodacki, 4 years ago

Replying to Desmond Nyamador:

Hi, I've gone through the documentation and it says at a point "To create a URLconf in the polls directory, create a file called urls.py. Your app directory should now look like:". I believe specifying the word "app" says it all.

Hi,

Once you know it says all, it does. However, before you do, it may be not obvious.

If you google for django tutorial 404 you'll find the proof that people are misreading the tutorial instructions. Unless it's an intended effect, calculated to make the reader pay attention, I believe it would be nice if people didn't have to go to Stack Overflow to get past the tutorial.

Your call :)

comment:4 by Mariusz Felisiak, 4 years ago

Has patch: unset
Resolution: fixedinvalid
Summary: tutorial 01: mysite/urls.py location confusionTutorial 01: mysite/urls.py location confusion

Tutorial is really descriptive, we ask to add urls.py in app directory. Moreover all expected files are listed below:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

comment:5 by Desmond Nyamador, 4 years ago

Resolution: invalid
Status: closednew

comment:6 by Desmond Nyamador, 4 years ago

Triage Stage: UnreviewedAccepted

comment:7 by Mariusz Felisiak, 4 years ago

Resolution: invalid
Status: newclosed
Triage Stage: AcceptedUnreviewed

Desmond, please don't reopen invalid tickets.

Note: See TracTickets for help on using tickets.
Back to Top