これまでは一つのURLConfで全てのアプリケーションの設定をおこなってきたが、本当はアプリケーションごとに設定したほうが分かりやすくなる。
なので、次のようにpollsアプリ用のURLConfを改めて作成する。
polls/urls.py(新規)
# polls/urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('polls.views',
url(r'^$', 'index'),
url(r'^(?P<poll_id>\d+)/$', 'detail'),
url(r'^(?P<poll_id>\d+)/results/$', 'results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'vote')
)
これまではpatternsの一つめに入っている文字列は空だったが、ここでさりげなくpolls.viewsが追加されている。こうすることで、今まではいちいちpolls.views.detailとかpolls.views.resultsなどと書いていたのをスマートにできる。
そして、以下のような感じでプロジェクト本体のURLConfにpollsのそれを紐づける。
mysite/urls.py
# mysite/urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls')),
url(r'^admin/', include(admin.site.urls))
)
これでOK。