具有多个正确答案的多项选择测验应用程序的设计方法

时间:2019-01-29 07:16:13

标签: python django model

嗨,我正在尝试实现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")

请指导我如何正确实施它。

1 个答案:

答案 0 :(得分:1)

您不需要其他模型来回答。只需像这样修改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中的Questionchoice中的Choice。这会引起混乱。