繁体   English   中英

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

[英]How to filter queryset on the LearnerQuestionAnswer Model?

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

测验模型:-

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)

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

all_quizes = Quiz.objects.all()

一个特别的测验:

quiz = all_quizes[0]

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

all_related_questions = quiz.questions.all()

我有另一个模型作为LearnerQuestionAnswer,其中学习者是普通的Django用户:-

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

我可以在Quiz_Question模型上过滤出测验和学习者特定的问题,如下所示:-

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

我如何才能类似地在LearnerQuestionAnswer模型上进行过滤,以便像上述一样获得测验和学习者特定的查询集?

您可以使用quiz_question__quiz查找按测验进行过滤。 使用以下查询按测验和学习者进行查询:

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

检查文档的此部分有关按相关模型的字段进行过滤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM