【发布时间】:2018-03-01 15:13:51
【问题描述】:
我想获取我在 Django 中的过滤器的最大 ID 列表
class Foo(models.Model):
name = models.CharField()
poo = models.CharField()
Foo.objects.filter(name__in=['foo','koo','too']).latest_by_id()
最终结果是一个查询集,每个名称只有最新的 objects(按 id)。如何在 Django 中做到这一点?
编辑:我希望最终结果中有多个对象。不只是一个对象。
Edit1:添加了 __in。再一次,我只需要每个名称的最新(因此是不同的)对象。
类似的东西。
my_id_list = [Foo.objects.filter(name=name).latest('id').id for name in ['foo','koo','too']]
Foo.objects.filter(id__in=my_id_list)
以上工作。但我想要一种更简洁的方法。是否可以在单个查询/过滤器注释组合中执行此操作?
【问题讨论】:
-
最新的你是指时间吗?如果您有创建时间,只需按日期排序并获得第一个结果。
-
最新的 id 是可能的,但这只会给我一个对象。我想要基于名称的最终结果中的多个对象。
-
so order_by id.
-
@Bestasttung 我想要输出中有多个对象。按 id 排序并获取最新的将不起作用。