如何在django模型中保存用户特定的测验答案?

时间:2018-05-24 05:10:51

标签: python django django-models

我有以下测验模型: -

class Quiz(models.Model):
    quiz_name = models.CharField(max_length=200)

    def __unicode__(self):
        return self.quiz_name

每个测验模型都有一组问题,每个问题都有一组相关的可能答案。这个问题也有一个正确的答案字段。以下是问题和答案的模型: -

答案型号: -

class Answer_Options(models.Model):
    text = models.CharField(max_length=200)

    def __unicode__(self):
        return self.text

问题模型: -

class Quiz_Question(models.Model):
    quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='questions')
    text = models.CharField(max_length=200)
    possible_answers = models.ManyToManyField(Answer_Options)
    correct = models.ForeignKey(Answer_Options, related_name="correct", default=None, on_delete=models.CASCADE)

    def __unicode__(self):
        return self.text

现在我面临的问题是如何保存哪个用户选择了哪个选项?有办法吗?

2 个答案:

答案 0 :(得分:0)

我会选择

33333333

答案 1 :(得分:0)

现有型号无法实现。您需要为测验答案创建另一个模型并在其中存储以下字段:

  • 选项ID
  • 用户ID

您不需要此处的问题或测验ID,因为您可以通过选项ID获取它。

假设您使用的是用户模型,下面是一个示例模型代码:

class QuizAnswer(models.Model):
    answer_option = models.ForeignKey(Answer_Options)
    user = models.ForeignKey(User)

顺便说一句,您的型号名称不符合标准。