Skip to content

Instantly share code, notes, and snippets.

@solidpple
Last active December 18, 2017 11:56
Show Gist options
  • Save solidpple/bcb9c72c3d0f6d74c816e9071e54e69f to your computer and use it in GitHub Desktop.
Save solidpple/bcb9c72c3d0f6d74c816e9071e54e69f to your computer and use it in GitHub Desktop.
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from .models import Choice, Question
def results(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/results.html', {'question': question})
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the question voting form.
return render(request, 'polls/detail.html', {
'question': question,
'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=(question.id,)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment