From 7f658a5429f1b8eb72157535ecdc05a136dc2be4 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Sun, 6 Nov 2011 16:58:04 +0000 Subject: [PATCH] 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 --- docs/intro/tutorial03.txt | 43 +++++++++++++++++++-------------------- docs/intro/tutorial04.txt | 14 ++++++------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 2fd8927a66..59c7afae67 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -84,10 +84,10 @@ Time for an example. Edit ``mysite/urls.py`` so it looks like this:: admin.autodiscover() urlpatterns = patterns('', - (r'^polls/$', 'polls.views.index'), - (r'^polls/(?P\d+)/$', 'polls.views.detail'), - (r'^polls/(?P\d+)/results/$', 'polls.views.results'), - (r'^polls/(?P\d+)/vote/$', 'polls.views.vote'), + url(r'^polls/$', 'polls.views.index'), + url(r'^polls/(?P\d+)/$', 'polls.views.detail'), + url(r'^polls/(?P\d+)/results/$', 'polls.views.results'), + url(r'^polls/(?P\d+)/vote/$', 'polls.views.vote'), 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:: urlpatterns = patterns('', - (r'^polls/$', 'polls.views.index'), - (r'^polls/(?P\d+)/$', 'polls.views.detail'), - (r'^polls/(?P\d+)/results/$', 'polls.views.results'), - (r'^polls/(?P\d+)/vote/$', 'polls.views.vote'), + url(r'^polls/$', 'polls.views.index'), + url(r'^polls/(?P\d+)/$', 'polls.views.detail'), + url(r'^polls/(?P\d+)/results/$', 'polls.views.results'), + url(r'^polls/(?P\d+)/vote/$', 'polls.views.vote'), ) 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:: urlpatterns = patterns('polls.views', - (r'^polls/$', 'index'), - (r'^polls/(?P\d+)/$', 'detail'), - (r'^polls/(?P\d+)/results/$', 'results'), - (r'^polls/(?P\d+)/vote/$', 'vote'), + url(r'^polls/$', 'index'), + url(r'^polls/(?P\d+)/$', 'detail'), + url(r'^polls/(?P\d+)/results/$', 'results'), + url(r'^polls/(?P\d+)/vote/$', 'vote'), ) This is functionally identical to the previous formatting. It's just a bit @@ -467,10 +467,10 @@ now look like this:: admin.autodiscover() urlpatterns = patterns('polls.views', - (r'^polls/$', 'index'), - (r'^polls/(?P\d+)/$', 'detail'), - (r'^polls/(?P\d+)/results/$', 'results'), - (r'^polls/(?P\d+)/vote/$', 'vote'), + url(r'^polls/$', 'index'), + url(r'^polls/(?P\d+)/$', 'detail'), + url(r'^polls/(?P\d+)/results/$', 'results'), + url(r'^polls/(?P\d+)/vote/$', 'vote'), ) 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 :func:`~django.conf.urls.include`, leaving you with:: - # This also imports the include function from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', - (r'^polls/', include('polls.urls')), + url(r'^polls/', include('polls.urls')), url(r'^admin/', include(admin.site.urls)), ) @@ -531,10 +530,10 @@ this:: from django.conf.urls import patterns, include, url urlpatterns = patterns('polls.views', - (r'^$', 'index'), - (r'^(?P\d+)/$', 'detail'), - (r'^(?P\d+)/results/$', 'results'), - (r'^(?P\d+)/vote/$', 'vote'), + url(r'^$', 'index'), + url(r'^(?P\d+)/$', 'detail'), + url(r'^(?P\d+)/results/$', 'results'), + url(r'^(?P\d+)/vote/$', 'vote'), ) The idea behind :func:`~django.conf.urls.include` and URLconf diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt index 602c315a7e..85d54c34f6 100644 --- a/docs/intro/tutorial04.txt +++ b/docs/intro/tutorial04.txt @@ -221,10 +221,10 @@ tutorial so far:: from django.conf.urls import patterns, include, url urlpatterns = patterns('polls.views', - (r'^$', 'index'), - (r'^(?P\d+)/$', 'detail'), - (r'^(?P\d+)/results/$', 'results'), - (r'^(?P\d+)/vote/$', 'vote'), + url(r'^$', 'index'), + url(r'^(?P\d+)/$', 'detail'), + url(r'^(?P\d+)/results/$', 'results'), + url(r'^(?P\d+)/vote/$', 'vote'), ) Change it like so:: @@ -234,12 +234,12 @@ Change it like so:: from polls.models import Poll urlpatterns = patterns('', - (r'^$', + url(r'^$', ListView.as_view( queryset=Poll.objects.order_by('-pub_date')[:5], context_object_name='latest_poll_list', template_name='polls/index.html')), - (r'^(?P\d+)/$', + url(r'^(?P\d+)/$', DetailView.as_view( model=Poll, template_name='polls/detail.html')), @@ -248,7 +248,7 @@ Change it like so:: model=Poll, template_name='polls/results.html'), name='poll_results'), - (r'^(?P\d+)/vote/$', 'polls.views.vote'), + url(r'^(?P\d+)/vote/$', 'polls.views.vote'), ) We're using two generic views here: