如何过滤LearnerQuestionAnswer模型上的查询集?

2024-05-15 21:47:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为测验的模型。每个测验都有一组与模型测验题相关的问题

测验模式:-

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

问答题模式:

class Quiz_Question(models.Model):
    quiz = models.ForeignKey(Quiz, related_name='questions')
    text = models.CharField(max_length=200)

现在,我可以使用相关的_name属性获取特定测验的所有问题,如下所示:-

all_quizes = Quiz.objects.all()

特别测验:

quiz = all_quizes[0]

与本次测验相关的所有问题如下:-

all_related_questions = quiz.questions.all()

我有另一个模型作为学习者问题答案,其中学习者是普通的django用户:-

class LearnerQuestionAnswer(models.Model):
    quiz_question = models.ForeignKey(Quiz_Question)
    learner = models.ForeignKey(User)

我可以在测验问题模型中过滤出测验和特定于学员的问题,如下所示:-

quiz = all_quizes[0]
learner= User.objects.get(id=1)
Quiz_Question.objects.filter(quiz=quiz, learnerquestionanswer__learner=learner)

我如何在LearnerQuestionResponse模型上进行类似的筛选,以便获得测验和特定于学习者的查询,就像上面的一样


Tags: name模型modelobjectsmodels学习者allquiz
1条回答
网友
1楼 · 发布于 2024-05-15 21:47:38

您可以使用quiz_question__quiz查找按quize进行筛选。使用以下查询按测验和学员进行查询:

quiz = all_quizes[0]
learner= User.objects.get(id=1)
LearnerQuestionAnswer.objects.filter(quiz_question__quiz=quiz, learner=learner)

检查文档的this part中关于按相关模型字段筛选的内容

相关问题 更多 >