嗨,我正在尝试实现一个 django 测验应用程序。但是无法弄清楚在尝试创建具有多个正确答案的问题时应该使用的方法。即,用户应该能够将多个选项标记为正确答案。
这就是我到目前为止想出的。
class Question(models.Model):
question = models.CharField(...)
class Choice(models.Model):
question = models.ForeignKey("Question")
choice = modelsCharField("Choice", max_length=50)
class Answer(models.Model):
question = models.ForeignKey("Question")
answers = models.ForeignKey("Choice")
请指导我如何以正确的方式实施它。
你不需要另一个模型来回答。只需像这样修改Choice
模型即可。
class Choice(models.Model):
question = models.ForeignKey('Question')
choice = models.CharField(...)
is_answer = models.BooleanField(default=False) # or True.
然后,您可以在 Question
.
class Question(models.Model):
question = models.CharField(...)
def check_answer(self, choice):
return self.choice_set.filter(id=choice.id, is_answer=True).exists()
def get_answers(self):
return self.choice_set.filter(is_answer=True)
我建议您更改字段名称,例如Question
中的question
,choice
Choice
中的字段名称。这可能会导致混淆。