Проверка окончания времени викторины в django

Я хочу проверить, закончилось ли время, пока пользователь отвечает на вопросы викторины, и если время закончилось, пользователь будет перенаправлен на другую страницу. Проблема в том, что я не могу найти способ начать процесс проверки без перезагрузки страницы. Если есть способ заставить это работать или если есть другой способ лучше, чем этот, я весь внимание, спасибо заранее

models.py

class Quiz(models.Model):
    name = models.CharField(max_length=30)
    start_date = models.DateField(null=True, blank=True)
    start_time = models.TimeField(null=True, blank=True)
    duration = models.IntegerField(null=True,blank=True)
    quiz_images = models.ImageField(upload_to=PathAndRename("images\\quiz_images"), default="images\\quiz_images\\default.png")
    slug = models.SlugField(max_length=8, null=True, blank=True)
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    prof = models.ForeignKey(User, on_delete=models.SET_NULL, null=True,limit_choices_to={'is_prof':True})


    class Meta():
        constraints = [
            models.UniqueConstraint(fields=['name','course'],name='unique course')
        ]

    def __str__(self):
        return f"{self.name}/{self.course.name}"

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slug_generator(self)
        super().save(*args, **kwargs)
        image_resize(self.quiz_images.path)

    def get_absolute_url(self):
        return reverse('create-quiz-question', kwargs={'slug': self.slug})

    @property
    def get_end_time(self):
        q_time=datetime.combine(self.start_date,self.start_time)
        return q_time+timedelta(minutes=self.duration)

    @property
    def is_open(self):
        if datetime.utcnow() > self.get_end_time:
            return False
        return True

    @property
    def get_quiz_grade(self):
        total = 0
        for question in self.questions.all():
            total += question.grade
        return total

views.py

def quiz_view(request,slug):
    quiz = Quiz.objects.filter(slug=slug).first()
    form = AnswerQuizForm(questions=quiz.questions.all())
    # if not quiz.is_open:
    #     if form.data:
    #         form = AnswerQuizForm(data=request.POST,questions=quiz.questions.all(),user=request.user)
    #         if form.is_valid():
    #             attemp=form.save()
    #             attemp.quiz=quiz
    #             attemp.save()
    #     return redirect('home')
    if request.method == 'POST':
        form = AnswerQuizForm(data=request.POST,questions=quiz.questions.all(),user=request.user)
        if form.is_valid():
            attemp=form.save()
            attemp.quiz=quiz
            attemp.save()
    context = {
        'quiz': quiz,
        'form': form
    }
    return render(request,'quiz/show.html',context=context)
Вернуться на верх