【发布时间】:2011-07-22 20:58:41
【问题描述】:
我在我的应用中设置了以下模型:
- 课程
- 学生
- 评估
Lesson 和 Student 模型通过评估具有多对多关系。在评估模型中,我还存储了课程收到的费用。我知道我应该将其真正存储在课程模型中,然后乘以学生人数,但有时出于某种原因,学生可能无法支付全部课程费用,因此我需要逐个跟踪它。
我正在尝试创建给定时间段内所有课程的列表,并包含一个显示
的列- 课程收到的总金额
- 该时间段内所有课程收到的总金额。
目前,我只是使用通用视图来返回所有课程,并且我在课程模型中定义了一个简单的方法来计算收到的总费用:
def total_fee(self):
evaluations = self.evaluation_set.all()
total = 0;
for e in evaluations:
total += e.fee_paid
return total
但是,我正在运行调试工具栏,这表明我在运行该视图时需要 87 个单独的 SQL 查询!
显然,我不能每次都这样做。如何一次性获取所有数据?
任何建议将不胜感激。
谢谢。
【问题讨论】:
标签: django django-models