这应该适用于Django 1.2+和MysqL:
score.objects.annotate(
max_date=Max('student__score__date')
).filter(
date=F('max_date')
)
如果你的数据库是支持distinct()
现场的Postgres,则可以尝试
score.objects.order_by('student__username', '-date').distinct('student__username')
Django orm为每个组获取最新信息
这应该适用于Django 1.2+和MysqL:
score.objects.annotate(
max_date=Max('student__score__date')
).filter(
date=F('max_date')
)
如果你的数据库是支持distinct()
现场的Postgres,则可以尝试
score.objects.order_by('student__username', '-date').distinct('student__username')