from django.shortcuts import render, get_object_or_404 from polls.models import Poll from django.shortcuts import redirect # Create your views here. from django.http import HttpResponse from django.contrib.auth.decorators import login_required #@login_required(redirect_field_name='my_redirect_field') @login_required def index(request): # if not request.user.is_authenticated(): # return redirect('/accounts/login/?next=%s' % request.path) # username = request.POST['username'] # password = request.POST['password'] # user = authenticate(username=username, password=password) # if user is not None: # if user.is_active: # login(request, user) # Redirect to a success page. # else: # Return a 'disabled account' error message # else: # Return an 'invalid login' error message. # return HttpResponse("Hello, world. You're at the poll index.") latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5] context = {'latest_poll_list': latest_poll_list} return render(request, 'polls/index.html', context) def detail(request, poll_id): poll = get_object_or_404(Poll, pk=poll_id) return render(request, 'polls/detail.html', {'poll': poll}) def results(request, poll_id): return HttpResponse("You're looking at the results of poll %s." % poll_id) def vote(request, poll_id): #return HttpResponse("You're voting on poll %s." % 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(request, 'polls/detail.html', { '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:results', args=(p.id,)))