我有一个模型,它有两个属性:日期和长度以及其他不相关的属性。我需要在模板中显示每天的长度总和列表。
我到目前为止使用的解决方案是逐日循环并使用聚合创建总和列表:
for day in month:
sums.append(MyModel.objects.filter(date=date).aggregate(Sum('length')))
但由于db查找的数量,对我来说似乎非常无效。难道没有更好的方法吗?喜欢缓存所有内容然后过滤它而不触及db?
答案 0 :(得分:2)
public class Venue implements Serializable {
...
@OneToMany
@JsonBackReference
public List<Workshop> getWorkshops() {
return workshops;
}
...
}
可用于按.values()
进行分组,因此您只能通过{{1}获得唯一日期以及date
字段的总和}:
length
来自docs:
当 .values()子句用于约束结果集中返回的列时,评估注释的方法略有不同。原始结果不是为原始QuerySet中的每个结果返回带注释的结果,而是根据 .values()子句中指定的字段的唯一组合进行分组。
希望这有帮助。