====polls/urls.py==== #from django.conf.urls.defaults import * #urlpatterns = patterns('mysite.polls.views', # (r'^$', 'index'), # (r'^(?P\d+)/$', 'detail'), # (r'^(?P\d+)/results/$', 'results'), # (r'^(?P\d+)/vote/$', 'vote'), #) from django.conf.urls.defaults import * from mysite.polls.models import Poll info_dict = { 'queryset': Poll.objects.all(), } urlpatterns = patterns('', (r'^$', 'django.views.generic.list_detail.object_list', info_dict), (r'^(?P\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict), url(r'^(?P\d+)/results/$', 'django.views.generic.list_detail.object_detail', dict(info_dict, template_name='polls/results.html'), 'poll_results'), (r'^(?P\d+)/vote/$', 'mysite.polls.views.vote'), ) ====detail.html====

{{ object.question }}

{% if error_message %}

{{ error_message }}

{% endif %}
{% for choice in object.choice_set.all %}
{% endfor %}
====views.py==== # Create your views here. from django.template import Context, loader from mysite.polls.models import Poll from django.http import HttpResponse, HttpResponseRedirect from django.core.urlresolvers import reverse from django.shortcuts import render_to_response, get_object_or_404 def vote(request, poll_id): p = get_object_or_404(Poll, pk=poll_id) try: selected_choice = p.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist): # Redisplay the poll voting form. return render_to_response('polls/poll_detail.html', { 'object': p, 'error_message': "You didn't select a choice.", }) else: selected_choice.votes += 1 selected_choice.save() # Always return an HttpResponseRedirect after successfully dealing # with POST data. This prevents data from being posted twice if a # user hits the Back button. return HttpResponseRedirect(reverse('poll_results', args=(p.id,))) #return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(p.id,)))