2

目标:

在这里,我正在过滤具有给定 ID 的交易,并从那些我想选择具有最新日期的交易中进行筛选。

contact.deal_set.filter(deal_id=deal_id).aggregate(Max('deal_start_datetime'))

但是,这只会返回一个包含最大日期的字典。不过我需要这一行。我究竟做错了什么?

4

2 回答 2

1

使用 .latest 方法提供 django 查询集。

例如在您的特定情况下:

contact.deal_set.filter(deal_id=deal_id).latest('deal_start_datetime')

Django 文档:https ://docs.djangoproject.com/en/dev/ref/models/querysets/#latest

于 2012-11-09T12:44:04.957 回答
0

用这个

contact.deal_set.filter(deal_id=deal_id).order_by('-deal_start_datetime')

这将deal_start_datetime反向排序查询集,第0个元素是最新的,你可以得到它

latest_contact = contact.deal_set.filter(deal_id=deal_id).order_by('-deal_start_datetime')[0]
于 2012-11-09T12:06:29.783 回答