我是Django的新手,我創建了一個測驗應用程序。我想知道是否有可能只做一個查詢,並獲得三個相關表的多級查詢集。有關對象的Django多維查詢集
一個測驗有多個問題,一個問題有多個選擇。
測驗/ models.py:
class Quiz(models.Model):
title = models.CharField(max_length=200)
class Question(models.Model):
quiz_id = models.ForeignKey("Quiz", db_column="quiz_id")
question = models.TextField()
class Choice(models.Model):
question_id = models.ForeignKey("Question", db_column="question_id")
text = models.TextField()
我期待的結果是這樣的:
[{
quiz_id:1,
quiz_title: "Quiz Title",
quiz_questions:
[
{
question_id:1,
question_question:"The Question",
question_choices:[
{
choice_id:1,
choice_text:"The Choice Text"
},
{
choice_id:2,
choice_text:"The Choice Text"
}]
},
{
question_id:2,
question_question:"The Question",
question_choices:[
{
choice_id:1,
choice_text:"The Choice Text"
},
{
choice_id:2,
choice_text:"The Choice Text"
}]
}
]
}]
是否有可能只用一個單一的查詢來獲得這種結果? 到目前爲止,我可以得到一個單一的測驗對象,並通過執行獲得所有相關的問題:
quiz_object.questions_set.all()
但是,我不能去選擇研究水平和結果存儲在不同的變量。
這會有幫助嗎? Question.objects.filter(quiz = quiz_object)'''''''''''''''''''''''''''''''''''''''''''''''''' –