else:
return False
+ def get_answers(self):
+ return Answer.objects.filter(question=self)
+
class Meta:
verbose_name = "Multiple Choice Question"
verbose_name_plural = "Multiple Choice Questions"
correct=True)
def test_answers(self):
- answers = Answer.objects.filter(question__id=self.q.id)
- correct_a = Answer.objects.get(question__id=self.q.id,
+ answers = Answer.objects.filter(question=self.q)
+ correct_a = Answer.objects.get(question=self.q,
correct=True)
+ answers_by_method = self.q.get_answers()
self.assertEqual(answers.count(), 2)
self.assertEqual(correct_a.content, "European")
self.assertEqual(self.q.check_if_correct(123), False)
self.assertEqual(self.q.check_if_correct(456), True)
+ self.assertEqual(answers_by_method.count(), 2)
"""
q = previous['previous_question']
q_type = q.__class__.__name__
-
+ answers = q.get_answers()
+ previous_answer_id = context['previous']['previous_answer']
if isinstance(q, MCQuestion):
- answers = Answer.objects.filter(question=q)
- previous_answer_id = int(context['previous']['previous_answer'])
- return {'answers': answers,
- 'question_type': {q_type: True},
- 'previous_answer_id': previous_answer_id}
-
- if isinstance(q, TF_Question):
- answers = [{'correct': q.check_if_correct('T'),
- 'content': 'True'},
- {'correct': q.check_if_correct('F'),
- 'content': 'False'}]
- return {'answers': answers,
- 'question_type': {q_type: True}}
+ previous_answer_id = int(previous_answer_id)
+ return {'answers': answers,
+ 'question_type': {q_type: True},
+ 'previous_answer_id': previous_answer_id}
@register.inclusion_tag('correct_answer.html', takes_context=True)
else:
return False
+ def get_answers(self):
+ return [{'correct': self.check_if_correct('T'),
+ 'content': 'True'},
+ {'correct': self.check_if_correct('F'),
+ 'content': 'False'}]
+
class Meta:
verbose_name = "True/False Question"
verbose_name_plural = "True/False Questions"
self.assertEqual(self.blue.correct, False)
self.assertEqual(self.blue.check_if_correct("T"), False)
self.assertEqual(self.blue.check_if_correct("F"), True)
+
+ def test_get_answers(self):
+ self.assertEqual(self.red.get_answers(),
+ [{'correct': True,
+ 'content': 'True'},
+ {'correct': False,
+ 'content': 'False'}])