diff --git a/polls/views.py b/polls/views.py index 0059d0e..9c501de 100644 --- a/polls/views.py +++ b/polls/views.py @@ -1,4 +1,4 @@ -from django.shortcuts import render, get_object_or_404 +from django.shortcuts import render, get_object_or_404, redirect from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse from django.db.models import F @@ -13,6 +13,8 @@ def index(request): def detail(request, question_id): question = get_object_or_404(Question, pk=question_id) + if str(question_id) in request.session.get('votes', {}): + return redirect(f'/polls/{question_id}/results') return render(request, "polls/detail.html", {"question": question}) @@ -30,6 +32,10 @@ def results(request, question_id): def vote(request, question_id): question = get_object_or_404(Question, pk=question_id) + votes = request.session.get('votes', {}) + if str(question_id) in votes: + print("yes") + return redirect(f'/polls/{question_id}/results') try: selected_choice = question.choice_set.get(pk=request.POST["choice"]) except (KeyError, Choice.DoesNotExist): @@ -38,4 +44,8 @@ def vote(request, question_id): else: selected_choice.votes = F("votes") + 1 selected_choice.save() - return HttpResponseRedirect(reverse("polls:results", args=(question.id,))) \ No newline at end of file + + votes[question_id] = selected_choice.id + request.session['votes'] = votes + request.session.modified = True + return HttpResponseRedirect(reverse("polls:results", args=(question.id,)))