読者です 読者をやめる 読者になる 読者になる

ポンコツ備忘録

渋谷でWebエンジニアをしてる人の備忘録.日々の色々書いてます.

Djangoチュートリアルの頭でいきなりハマった

プログラミング

Djangoチュートリアルの頭でいきなりハマった
すっごい単純なところでハマって1時間くらい悩んだので書く

やったのは公式チュートリアル

はじめての Django アプリ作成、その 1 | Django documentation | Django

はじめてのビュー作成

書いてるとおりに進めてビューの作成へ.
polls/view.pyに下記書いた.

polls/view.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

polls/urls.pyに下記書いた.

polls/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

そしてmysite/urls.pyに下記作成.

mysite/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

そしてサーバー起動!

$ python manage.py runserver

エラー!!!

NameError: name 'url' is not defined

なんでや!!!urls.pyあるじゃん!!!って思って1時間ぐらいにらめっこ.
そうしたらmysite/urls.pyの置く場所を間違っていたという.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py ← ◯ 正しくはここに記載
        wsgi.py
    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    urls.py ← ☓ 間違って新しく作ってた

ちょっとわかりにくいかもしれませんが公式チュートリアルmysite/urls.py に記載しろよって書いていたので素直にmysite/urls.pyに記載したのですが実際はmysite/mysite/urls.pyに記載する必要があったのです.
くだらない単純なミス!でも公式ちょっとわかりにくいよ!

広告を非表示にする