Django:获取最新的不同对象

时间:2013-12-24 20:19:43

标签: django django-orm

假设我的WeatherReport对象包含字段datetemperaturecity

我想获取每个城市的所有最新WeatherReport个对象。我想我会做点像

WeatherReport.objects.order_by('-date').distinct('city')

但是失败了,返回错误

ProgrammingError: SELECT DISTINCT ON expressions must match initial ORDER BY expressions

1 个答案:

答案 0 :(得分:3)

这应该有效。当我遇到这个问题时,它与我合作。

WeatherReport.objects.order_by('city', '-date').distinct('city')

似乎DISTINCT ON表达式必须与最左边的ORDER BY表达式匹配。因此,通过将distinct中使用的列作为order_by中的第一列,我认为它应该可行。