Author: jacob
Date: 2007-07-11 19:33:44 -0500 (Wed, 11 Jul 2007)
New Revision: 5649

Modified:
   django/trunk/docs/tutorial04.txt
Log:
Fixed #4615: corrected reverse URL resolution examples in tutorial 4. Thanks 
for the patch, simeonf.

Modified: django/trunk/docs/tutorial04.txt
===================================================================
--- django/trunk/docs/tutorial04.txt    2007-07-11 17:47:06 UTC (rev 5648)
+++ django/trunk/docs/tutorial04.txt    2007-07-12 00:33:44 UTC (rev 5649)
@@ -193,7 +193,7 @@
     urlpatterns = patterns('',
         (r'^$', 'django.views.generic.list_detail.object_list', info_dict),
         (r'^(?P<object_id>\d+)/$', 
'django.views.generic.list_detail.object_detail', info_dict),
-        (r'^(?P<object_id>\d+)/results/$', 
'django.views.generic.list_detail.object_detail', dict(info_dict, 
template_name='polls/results.html')),
+        (r'^(?P<object_id>\d+)/results/$', 
'django.views.generic.list_detail.object_detail', dict(info_dict, 
template_name='polls/results.html'), 'poll_results'),
         (r'^(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
     )
 
@@ -209,6 +209,12 @@
       from the URL to be called ``"object_id"``, so we've changed ``poll_id`` 
to
       ``object_id`` for the generic views.
 
+    * We've added a name, ``poll_results``, to the results view so that we have
+      a way to refer to its url later on (see `naming URL patterns`_ for more 
on
+      named patterns).
+      
+.. _naming URL patterns: 
http://www.djangoproject.com/documentation/url_dispatch/#naming-url-patterns
+
 By default, the ``object_detail`` generic view uses a template called
 ``<app name>/<model name>_detail.html``. In our case, it'll use the template
 ``"polls/poll_detail.html"``. Thus, rename your ``polls/detail.html`` template 
to
@@ -255,6 +261,15 @@
 ``polls/detail.html`` to ``polls/poll_detail.html``, and pass ``object`` in the
 context instead of ``poll``.
 
+The last thing to do is fix the url handling to account for the use of generic
+views. In the vote view above we used the ``reverse()`` function to avoid
+hard-coding our URLs. Now that we've switched to a generic view, we'll need to
+change the ``reverse()`` call to point back to our new generic view. We can't
+simply use the view function anymore -- generic views can be (and are) used
+multiple times -- but we can use the name we've given::
+    
+    return HttpResponseRedirect(reverse('poll_results', args=(p.id,)))
+
 Run the server, and use your new polling app based on generic views.
 
 For full details on generic views, see the `generic views documentation`_.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to