您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从不同类别获取最新对象的Django查询

从不同类别获取最新对象的Django查询

据我所知,在Django ORM中没有做到这一点的单步方法

但是你可以将其分为两个查询

bakeries = Bakery.objects.annotate(
    hottest_cake_baked_at=Max('cake__baked_at')
) 
hottest_cakes = Cake.objects.filter(
    baked_at__in=[b.hottest_cake_baked_at for b in bakeries]
)

如果蛋糕的ID与bake_at时间戳一起在进行,则可以简化上面的代码并消除歧义(如果两个蛋糕同时到达,则可以同时获得它们):

hottest_cake_ids = Bakery.objects.annotate(
    hottest_cake_id=Max('cake__id')
).values_list('hottest_cak??e_id', flat=True)

hottest_cakes = Cake.objects.filter(id__in=hottest_cake_ids)
Go 2022/1/1 18:18:43 有721人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶