昨天測驗表已經成功放到網頁上,今天則是要做分數的加總,需要修改昨天寫好的function play及新增function result。
def play(request):
question = Question.objects.all()
if request.method == 'POST': #當測驗者提出表單(submit)
total = [] #匯集測驗者每題的得分
for q in question:
select = request.POST[str(q.id)] #獲得測驗者選擇的選項
choice = q.choice_set.all().values()
for i in choice: #loop四個選項
if i['choice_text'] == select:
total.append(i['score']) #選項對照的得分
return redirect(result, total=sum(total)) #傳送表單完就跳轉至結果畫面
return render(request, 'play.html', {'question':question})
測驗結果畫面的函數如下:
def result(request, total):
score = total
return render(request, 'result.html', {'score':score})
在template資料夾下新增result.html,當作測驗結果網頁,並放上最後的總得分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
總分:{{ score }}
</body>
</html>
小結:明天再把結果畫面裝飾一下 ^^