python - 转换查询集以获取每个名称的最新条目
问题描述
我的数据如下所示:
class Entry(models.Model):
name = models.CharField(max_length=100)
date = models.DateField(auto_now_add=True)
size = models.FloatField(null=True)
如果我做:
qs = Entry.objects.all()
我得到了queryset
所有条目。我将如何转换它queryset
以获取另一个具有每个名称 的最新条目的查询集?
解决方案
鉴于您使用的是 postgres 后端,您可以distinct(*fields)
与适当的组合使用order_by
:
qs = Entry.objects.all()
qs = qs.order_by('name', '-date').distinct('name')
推荐阅读
- antlr4 - 如何处理从右到左的语言
- excel - 使用 VBA 在 Excel 列表框中显示选择范围值
- java - Bundle & Minify 在 Maven Web 项目中不起作用
- php - 在 for 循环中更改元素
- java - 事务性更改集合中的记录
- php - Laravel (v5.7) Passport (v7.0) 在尝试打开 auth api 路由时将我重定向到登录屏幕
- ios - 测试快速调用函数的计时器
- wordpress - 如何在 WordLift 中将 JSON-LD `@type` 从 `Article` 更改为 `NewsArticle`
- google-bigquery - 如何在 bigquery 中构建视图以实现高效的访问管理
- javascript - JavaScript 适用于一个 id 而不是另一个?