Как отфильтровать набор запросов по модели LearnerQuestionAnswer? - PullRequest
0 голосов
/ 26 мая 2018

У меня есть модель с именем Quiz.Каждый тест имеет набор связанных вопросов в модели Quiz_Question.

Модель теста: -

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

Модель Quiz_Question: - *

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, чтобы я мог получить тест и набор запросов для конкретного ученика, как и выше?

1 Ответ

0 голосов
/ 26 мая 2018

Вы можете использовать поиск quiz_question__quiz для фильтрации по викторине.Используйте следующий запрос для запроса по викторине и ученику:

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

Проверьте эту часть документа о фильтрации по полям связанной модели.

...