这正是select_related()所做的。唯一的问题是必须从Answer模型而不是Question开始,但是结果是相同的:
answers = Answer.objects.filter(question_id=1).select_related()
现在,每个答案对象都有一个预取的“问题”属性,对其进行访问不会再影响数据库。
考虑使用models.ForeignKey(Question)
代替question_id = IntegerField()
。
这是表达你要描述的问题和答案之间关系的最佳(更具关系性)方法。
这样,你可以简单地致电Answers.objects.filter(question_id=<id>)
并获得所需的确切信息。