【问题标题】:How to get only latest record on filter of foreign key如何仅获取有关外键过滤器的最新记录
【发布时间】:2018-03-03 09:10:52
【问题描述】:

我有一张这样的桌子

事件表

id status date order(FK)
1 Planned 05-02-2015 1
2 Delivered 04-02-2015 2
3 Packed 03-02-2015 3
4 Return 06-02-2015 1

我想要这样的输出

id status date order(FK)
2 Delivered 04-02-2015 2
3 Packed 03-02-2015 3
4 Return 06-02-2015 1

我试过了

query = Event.objects.annotate(order_num=Max('date'))

但没有得到预期的结果。 我怎样才能实现这个输出?

【问题讨论】:

    标签: python django django-models django-orm


    【解决方案1】:

    尝试使用以下方法:

    from django.db.models import Max
    
    Event.objects.annotate(max_date=Max('order__event__date')) \
                 .filter(date=F('max_date'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 2020-05-04
      • 1970-01-01
      • 2023-02-02
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多