Автосохранение выбранных ответов и проверка ответов на тест из-за того, что на это нет времени

В моем приложении для викторины у меня есть следующие модели :

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> 

вот что я хочу сделать, если пользователь выбрал ответы на вопросы и они не были отправлены из-за времени, я хочу автоматически сохранить выбранные ответы и выдать результат экзамена!!! так как я могу это реализовать, пожалуйста, помогите мне?

Вернуться на верх