标签: python django
可能重复: Django, What's the best ,fastest way to get only first and last element from something, Customer.objects.xxxx
嗯这很难解释,但这就是发生的事情......
我的模特A有x和日期
有多个A具有相同的x和不同的日期。
自:
A.x = 1 (newest) A.x = 1 A.x = 1 (oldest) A.x = 2
我想只得到每个x的最新值,在这种情况下是第一个,最后一个,不包括旧的x = 1重复。
我曾想过做一些令人讨厌的循环或使用itertools,但我不确定实现这个目标的最佳方法是什么。
感谢任何帮助。
答案 0 :(得分:0)
启动Django 1.4 .distinct()查询集API接受字段参数
所以我想你可以做这样的事情
Queryset.order_by('-date').distinct('field')
您可以详细了解here。
答案 1 :(得分:0)
您可以使用latest() queryset方法。它与使用.order_by()[0]基本相同。
latest()
.order_by()[0]
这很好,因为我总是忘记在使用带有日期的order_by()时是否需要使用“ - ”。
order_by()
latest_object = Model.objects.latest("date/datetime fieldname")