modify detail view use new methods for return 404.

main
roger 3 years ago
parent dcb683de36
commit 6792a0795c
  1. 7
      polls/templates/detail.html
  2. 22
      polls/views.py

@ -5,6 +5,11 @@
<title>Title-{{ question }}</title> <title>Title-{{ question }}</title>
</head> </head>
<body> <body>
{{ question }} <h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
<li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>
</body> </body>
</html> </html>

@ -1,4 +1,5 @@
from django.shortcuts import render from django.shortcuts import render
from django.shortcuts import get_object_or_404
from django.http import HttpResponse from django.http import HttpResponse
from django.http import Http404 from django.http import Http404
from .models import Question from .models import Question
@ -26,15 +27,18 @@ def index(request):
def detail(request, question_id): def detail(request, question_id):
# return HttpResponse(f"You're looking at question {question_id}.") # return HttpResponse(f"You're looking at question {question_id}.")
# 添加404页面展示 # 添加404页面展示 方式1
try: # try:
question = Question.objects.get(pk=question_id) # question = Question.objects.get(pk=question_id)
context = {'question': question} # context = {'question': question}
print(context) # print(context)
except Question.DoesNotExist: # except Question.DoesNotExist:
raise Http404("Question does not exist") # raise Http404("Question does not exist")
return render(request, 'detail.html', context) # return render(request, 'detail.html', context)
# 添加404页面展示 方式2
question = get_object_or_404(Question, pk=question_id)
return render(request, 'detail.html', {'question': question})
def result(request, question_id): def result(request, question_id):
return HttpResponse(f"You're looking at the result of question {question_id}.") return HttpResponse(f"You're looking at the result of question {question_id}.")

Loading…
Cancel
Save