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

从不同类别获取最新对象的Django查询,第1张

从不同类别获取最新对象的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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5040913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存