diff --git a/Django/mysite/db.sqlite3 b/Django/mysite/db.sqlite3 index 64c8232..e548e4d 100644 Binary files a/Django/mysite/db.sqlite3 and b/Django/mysite/db.sqlite3 differ diff --git a/Django/mysite/polls/templates/polls/detail.html b/Django/mysite/polls/templates/polls/detail.html index 4e1bd67..55fa300 100644 --- a/Django/mysite/polls/templates/polls/detail.html +++ b/Django/mysite/polls/templates/polls/detail.html @@ -1,6 +1,12 @@ -

{{ question.question_text }}

- \ No newline at end of file +
+ {% csrf_token %} +
+

{{ question.question_text }}

+ {% if error_message %}

{{ error_message }}

{% endif %} + {% for choice in question.choice_set.all %} + +
+ {% endfor %} +
+ +
\ No newline at end of file diff --git a/Django/mysite/polls/templates/polls/results.html b/Django/mysite/polls/templates/polls/results.html new file mode 100644 index 0000000..33b67b2 --- /dev/null +++ b/Django/mysite/polls/templates/polls/results.html @@ -0,0 +1,9 @@ +

{{ question.question_text }}

+ + + +Vote again? \ No newline at end of file diff --git a/Django/mysite/polls/views.py b/Django/mysite/polls/views.py index 4e674eb..5e541a7 100644 --- a/Django/mysite/polls/views.py +++ b/Django/mysite/polls/views.py @@ -1,10 +1,10 @@ from django.shortcuts import get_object_or_404, render -from django.http import HttpResponse, Http404 -from django.template import loader +from django.http import HttpResponse, HttpResponseRedirect +from django.urls import reverse +from django.db.models import F - -from .models import Question +from .models import Choice, Question # Create your views here. @@ -18,9 +18,27 @@ def detail(request, question_id): return render(request, "polls/detail.html", {"question": question}) def results(request, question_id): - response = "You're looking at the results of question %s." - return HttpResponse(response % question_id) - + question = get_object_or_404(Question, pk=question_id) + return render(request, "polls/results.html", {"question": question}) def vote(request, question_id): - return HttpResponse("You're voting on question %s." % question_id) \ No newline at end of file + 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 = F("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,))) \ No newline at end of file