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



嗨,我正在尝试实现一个 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中的questionchoice Choice中的字段名称。这可能会导致混淆。

最新更新