目标:
在这里,我正在过滤具有给定 ID 的交易,并从那些我想选择具有最新日期的交易中进行筛选。
contact.deal_set.filter(deal_id=deal_id).aggregate(Max('deal_start_datetime'))
但是,这只会返回一个包含最大日期的字典。不过我需要这一行。我究竟做错了什么?
目标:
在这里,我正在过滤具有给定 ID 的交易,并从那些我想选择具有最新日期的交易中进行筛选。
contact.deal_set.filter(deal_id=deal_id).aggregate(Max('deal_start_datetime'))
但是,这只会返回一个包含最大日期的字典。不过我需要这一行。我究竟做错了什么?
使用 .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
用这个
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]