Create new views for polls/ Add detail views/ Use template

This commit is contained in:
sosokker 2023-08-28 19:24:49 +07:00
parent 0db4bad757
commit a62096f7e5
4 changed files with 58 additions and 2 deletions

View File

@ -0,0 +1,6 @@
<h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
<li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>

View File

@ -0,0 +1,9 @@
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}

View File

@ -2,6 +2,10 @@ from django.urls import path
from . import views
app_name = "polls"
urlpatterns = [
path("", views.index, name="index"),
]
path("<int:question_id>/", views.detail, name="detail"),
path("<int:question_id>/results/", views.results, name="results"),
path("<int:question_id>/vote/", views.vote, name="vote"),
]

View File

@ -1,5 +1,42 @@
from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import get_object_or_404, render
from .models import Question
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
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 index(request):
# lastest_question_list = Question.objects.order_by("-pub_date")[:5]
# template = loader.get_template("polls/index.html")
# context = {
# "lastest_question_list": lastest_question_list
# }
# return HttpResponse(template.render(context, request))
# def detail(request, question_id):
# try:
# question = Question.objects.get(pk=question_id)
# except Question.DoesNotExist:
# raise Http404("Question does not exist")
# return render(request, "polls/detail.html", {"question": question})
def detail(request, question_id):
question = get_object_or_404(Question, pk=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)
def vote(request, question_id):
return HttpResponse("You're voting on question %s." % question_id)