Refs #17171 -- Updated tutorial sections 3 and 4 to follow the startproject template and consistently use url() function in URLconf. Thanks haimunt for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17073 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Carl Meyer 2011-11-06 16:58:04 +00:00
parent 5f64af9ecb
commit 7f658a5429
2 changed files with 28 additions and 29 deletions

View File

@ -84,10 +84,10 @@ Time for an example. Edit ``mysite/urls.py`` so it looks like this::
admin.autodiscover() admin.autodiscover()
urlpatterns = patterns('', urlpatterns = patterns('',
(r'^polls/$', 'polls.views.index'), url(r'^polls/$', 'polls.views.index'),
(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
) )
@ -434,10 +434,10 @@ Take some time to play around with the views and template system. As you edit
the URLconf, you may notice there's a fair bit of redundancy in it:: the URLconf, you may notice there's a fair bit of redundancy in it::
urlpatterns = patterns('', urlpatterns = patterns('',
(r'^polls/$', 'polls.views.index'), url(r'^polls/$', 'polls.views.index'),
(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
) )
Namely, ``polls.views`` is in every callback. Namely, ``polls.views`` is in every callback.
@ -447,10 +447,10 @@ common prefixes. You can factor out the common prefixes and add them as the
first argument to :func:`~django.conf.urls.patterns`, like so:: first argument to :func:`~django.conf.urls.patterns`, like so::
urlpatterns = patterns('polls.views', urlpatterns = patterns('polls.views',
(r'^polls/$', 'index'), url(r'^polls/$', 'index'),
(r'^polls/(?P<poll_id>\d+)/$', 'detail'), url(r'^polls/(?P<poll_id>\d+)/$', 'detail'),
(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
) )
This is functionally identical to the previous formatting. It's just a bit This is functionally identical to the previous formatting. It's just a bit
@ -467,10 +467,10 @@ now look like this::
admin.autodiscover() admin.autodiscover()
urlpatterns = patterns('polls.views', urlpatterns = patterns('polls.views',
(r'^polls/$', 'index'), url(r'^polls/$', 'index'),
(r'^polls/(?P<poll_id>\d+)/$', 'detail'), url(r'^polls/(?P<poll_id>\d+)/$', 'detail'),
(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
) )
urlpatterns += patterns('', urlpatterns += patterns('',
@ -497,14 +497,13 @@ Copy the file ``mysite/urls.py`` to ``polls/urls.py``. Then, change
``mysite/urls.py`` to remove the poll-specific URLs and insert an ``mysite/urls.py`` to remove the poll-specific URLs and insert an
:func:`~django.conf.urls.include`, leaving you with:: :func:`~django.conf.urls.include`, leaving you with::
# This also imports the include function
from django.conf.urls import patterns, include, url from django.conf.urls import patterns, include, url
from django.contrib import admin from django.contrib import admin
admin.autodiscover() admin.autodiscover()
urlpatterns = patterns('', urlpatterns = patterns('',
(r'^polls/', include('polls.urls')), url(r'^polls/', include('polls.urls')),
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
) )
@ -531,10 +530,10 @@ this::
from django.conf.urls import patterns, include, url from django.conf.urls import patterns, include, url
urlpatterns = patterns('polls.views', urlpatterns = patterns('polls.views',
(r'^$', 'index'), url(r'^$', 'index'),
(r'^(?P<poll_id>\d+)/$', 'detail'), url(r'^(?P<poll_id>\d+)/$', 'detail'),
(r'^(?P<poll_id>\d+)/results/$', 'results'), url(r'^(?P<poll_id>\d+)/results/$', 'results'),
(r'^(?P<poll_id>\d+)/vote/$', 'vote'), url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
) )
The idea behind :func:`~django.conf.urls.include` and URLconf The idea behind :func:`~django.conf.urls.include` and URLconf

View File

@ -221,10 +221,10 @@ tutorial so far::
from django.conf.urls import patterns, include, url from django.conf.urls import patterns, include, url
urlpatterns = patterns('polls.views', urlpatterns = patterns('polls.views',
(r'^$', 'index'), url(r'^$', 'index'),
(r'^(?P<poll_id>\d+)/$', 'detail'), url(r'^(?P<poll_id>\d+)/$', 'detail'),
(r'^(?P<poll_id>\d+)/results/$', 'results'), url(r'^(?P<poll_id>\d+)/results/$', 'results'),
(r'^(?P<poll_id>\d+)/vote/$', 'vote'), url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
) )
Change it like so:: Change it like so::
@ -234,12 +234,12 @@ Change it like so::
from polls.models import Poll from polls.models import Poll
urlpatterns = patterns('', urlpatterns = patterns('',
(r'^$', url(r'^$',
ListView.as_view( ListView.as_view(
queryset=Poll.objects.order_by('-pub_date')[:5], queryset=Poll.objects.order_by('-pub_date')[:5],
context_object_name='latest_poll_list', context_object_name='latest_poll_list',
template_name='polls/index.html')), template_name='polls/index.html')),
(r'^(?P<pk>\d+)/$', url(r'^(?P<pk>\d+)/$',
DetailView.as_view( DetailView.as_view(
model=Poll, model=Poll,
template_name='polls/detail.html')), template_name='polls/detail.html')),
@ -248,7 +248,7 @@ Change it like so::
model=Poll, model=Poll,
template_name='polls/results.html'), template_name='polls/results.html'),
name='poll_results'), name='poll_results'),
(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
) )
We're using two generic views here: We're using two generic views here: