Djangoチュートリアルにて、学習していたのですが、分からない部分があった為、質問させて貰いました。
以下のコードでは、投票ページdetail.htmlから、投票した結果results.htmlへ遷移する際のviewのコードになります。
分からない部分なのですが、最後のreturn HttpResponseRedirect
こちらでリダイレクトさせていますが、ただ単にリダイレクトではなく、renderメソッドでreturn render(request, 'polls/results.html', {'question': question})
こちらのような形で、処理する形では問題があるのでしょうか?
from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import get_object_or_404, render from django.urls import reverse from .models import Choice, Question # ... def vote(request, question_id): 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 += 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,)))
どなたか、ご助言いただけましたら幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/10 01:53
2020/01/10 01:55
2020/01/10 02:29