diff --git a/Django/mysite/db.sqlite3 b/Django/mysite/db.sqlite3 index e548e4d..80b5f5a 100644 Binary files a/Django/mysite/db.sqlite3 and b/Django/mysite/db.sqlite3 differ diff --git a/Django/mysite/polls/urls.py b/Django/mysite/polls/urls.py index c9cd57c..a2b6cc3 100644 --- a/Django/mysite/polls/urls.py +++ b/Django/mysite/polls/urls.py @@ -3,14 +3,9 @@ from django.urls import path from . import views app_name = "polls" - urlpatterns = [ - # ex: /polls/ - path("", views.index, name="index"), - # ex: /polls/5/ - path("/", views.detail, name="detail"), - # ex: /polls/5/results/ - path("/results/", views.results, name="results"), - # ex: /polls/5/vote/ + path("", views.IndexView.as_view(), name="index"), + path("/", views.DetailView.as_view(), name="detail"), + path("/results/", views.ResultsView.as_view(), name="results"), path("/vote/", views.vote, name="vote"), ] \ No newline at end of file diff --git a/Django/mysite/polls/views.py b/Django/mysite/polls/views.py index 5e541a7..23f2af3 100644 --- a/Django/mysite/polls/views.py +++ b/Django/mysite/polls/views.py @@ -2,25 +2,33 @@ from django.shortcuts import get_object_or_404, render from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse from django.db.models import F +from django.views import generic + from .models import Choice, Question # Create your views here. -def index(request): - latest_question_list = Question.objects.order_by("-pub_date")[:5] - context = {"latest_question_list": latest_question_list} - return render(request, "polls/index.html", context) -def detail(request, question_id): - question = get_object_or_404(Question, pk=question_id) - return render(request, "polls/detail.html", {"question": question}) +class IndexView(generic.ListView): + template_name = "polls/index.html" + context_object_name = "latest_question_list" + + def get_queryset(self): + """Return the last five published questions.""" + return Question.objects.order_by("-pub_date")[:5] + + +class DetailView(generic.DetailView): + model = Question + template_name = "polls/detail.html" -def results(request, question_id): - question = get_object_or_404(Question, pk=question_id) - return render(request, "polls/results.html", {"question": question}) +class ResultsView(generic.DetailView): + model = Question + template_name = "polls/results.html" + def vote(request, question_id): question = get_object_or_404(Question, pk=question_id) try: