Автосохранение выбранных ответов и проверка ответов на тест из-за того, что на это нет времени
В моем приложении для викторины у меня есть следующие модели :
from django.db import models
class Quizzes(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
question_number = models.PositiveIntegerField()
total_marks = models.PositiveIntegerField()
date = models.DateTimeField(auto_now_add=True)
time_limit_mins = models.PositiveIntegerField()
def __str__(self):
return self.title
class Question(models.Model):
quiz = models.ForeignKey(Quizzes,on_delete=models.CASCADE)
question=models.CharField(max_length=600)
marks=models.PositiveIntegerField()
option1=models.CharField(max_length=200)
option2=models.CharField(max_length=200)
option3=models.CharField(max_length=200)
option4=models.CharField(max_length=200)
cat=(('Option1','Option1'),('Option2','Option2'),('Option3','Option3'),('Option4','Option4'))
answer=models.CharField(max_length=200,choices=cat)
class Attempter(models.Model):
quiz = models.ForeignKey(Quizzes, on_delete=models.CASCADE)
score = models.PositiveIntegerField()
completed = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username
class Result(models.Model):
exam = models.ForeignKey(Quizzes,on_delete=models.CASCADE)
marks = models.PositiveIntegerField()
date = models.DateTimeField(auto_now=True)
и у меня есть следующий js код для отслеживания времени, отведенного на экзамен, и если время вышло, страница викторины перенаправляется на страницу результата :
<script>
function saveAns(){
var ele = document.getElementsByTagName('input');
for(i = 0; i < ele.length; i++) {
if(ele[i].type="radio") {
if(ele[i].checked){
setCookie(ele[i].name,ele[i].value,3)
}
}
}
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
window.onload = function begin(){
document.getElementById('timer').innerHTML =
{{quiz.time_limit_mins}} + ":" + 00;
startTimer();
}
function startTimer() {
var presentTime = document.getElementById('timer').innerHTML;
var timeArray = presentTime.split(/[:]+/);
var m = timeArray[0];
var s = checkSecond((timeArray[1] - 1));
if(s==59){m=m-1}
if(m<0){
document.getElementById('quiz').submit();
}
document.getElementById('timer').innerHTML =
m + ":" + s;
setTimeout(startTimer, 1000);
}
function checkSecond(sec) {
if (sec < 10 && sec >= 0) {sec = "0" + sec}; // add zero in front of numbers < 10
if (sec < 0) {sec = "59"};
return sec;
}
</script>
вот что я хочу сделать, если пользователь выбрал ответы на вопросы и они не были отправлены из-за времени, я хочу автоматически сохранить выбранные ответы и выдать результат экзамена!!! так как я могу это реализовать, пожалуйста, помогите мне?