from django.template import Context, loader from django.contrib.simpletemplate.public import get_template, render_to_response from django.shortcuts import get_object_or_404 from django.core.urlresolvers import reverse from models import Poll, Choice from django.http import HttpResponse from django.http import HttpResponseRedirect def index(request): latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5] t = get_template('polls/index.pt') c = Context({ 'latest_poll_list': latest_poll_list, }) #return HttpResponse(t.render(c)) return render_to_response('polls/index.pt', {'latest_poll_list': latest_poll_list}) def detail(request, poll_id): p = get_object_or_404(Poll, pk=poll_id) return render_to_response('polls/detail.pt', {'poll': p}) 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/detail.pt', { 'poll': 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('polls.views.results', args=(p.id,))) def results(request, poll_id): p = get_object_or_404(Poll, pk=poll_id) return render_to_response('polls/results.pt', {'poll': p})