Ya he hecho una aplicación que me permite estudiar. Contiene múltiples pruebas con múltiples preguntas con una respuesta correcta cada una.
class Test(models.Model): name = models.CharField(max_length=200) #questions = models.ManyToManyField(Question) author = models.ForeignKey(User, on_delete=models.CASCADE, default=None, null=True, blank=True) date_posted = models.DateTimeField(auto_now_add = True) def get_questions(self): return self.question_set.all() def __str__(self): return self.name class Question(models.Model): text = models.CharField(max_length=200, null=True) test = models.ForeignKey(Test, on_delete=models.CASCADE) created = models.DateTimeField(auto_now_add = True) def get_answer(self): return self.answer_set.all() def __str__(self): return self.text class Answer(models.Model): text = models.CharField(max_length=200) question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name='parent') def __str__(self): return self.textHice la función JS que compara la respuesta del usuario del campo de entrada con la respuesta correcta puesta en html
function PointsCounter(){ var points = 0; const elements = document.querySelectorAll('.question-container'); Array.from(elements).forEach((element, index) => { var CorrectAnswer = (((element.querySelector('div form p')).innerHTML).toLowerCase()).trim(); var UserAnswer = (((element.querySelector('div form p input')).value).toLowerCase()).trim(); if(UserAnswer == CorrectAnswer){ points++; }}) document.getElementById("points").innerHTML=points; }En lugar de poner la respuesta correcta en mi código html:
<p id="ans" hidden>{{ question.parent.all.last }}</p>Me gustaría comparar la respuesta del usuario con la respuesta de la base de datos, pero no sé cómo lograrlo.
Quiero decir, me gustaría pasar la respuesta correcta a la función js para impedir que el usuario verifique la respuesta inspeccionando el código html de la página. ¿Cómo puedo hacerlo?