首页 > 解决方案 > 基于最大日期的 Django 过滤器模型

问题描述

我有一个具有以下条目的模型药物:

id  location  num  date         country
1   UC        ABC  2021-03-26   ZAF
2   UC        DEF  2021-03-26   ZAF       # line to retrieve with filter
3   UC        ABC  2021-09-06   ZAF       # line to retrieve with filter

我想根据组合 loc - num - date 的最大日期选择记录

例如,在上面的测试用例中,我只想返回最新的 2 条记录,因为 id 3 比 id 1 更新

标签: djangoormdjango-queryset

解决方案


from django.db.models import Max

result = Drug.objects.values('location','num').annotate(max_date=Max('date')).order_by()

解释 :

Drug表中,按andgroup的行(因此在您的示例中, row1 和 row3 将被分组在一起),然后获取记录locationnumMax('date')


推荐阅读