Django将多个查询链接在一起以返回最新信息

时间:2014-11-01 19:38:10

标签: django django-queryset

我有3个独立的模型。我希望能够对所有表进行查询并返回具有最新日期的对象。对此最好的方法是什么?我现在让他们在一个链条中返回。所有模型都包含auto_now_add DateTimeField。是否可以根据链式查询集过滤最新创建的对象?

article_list = Article.objects.all()
issue_list = Issue.objects.all()
annual_list = Annual.objects.all()

result_list = list(chain(article_list, issue_list, annual_list))

1 个答案:

答案 0 :(得分:1)

如果您只想要一个对象,则可以使用带键的max()

max(result_list, key=lambda x: x.date) #or whatever the name of the field is (should be same on all models)

以相同的方式,如果你想要按日期字段排序的整个列表,你可以使用sorted()并给出上面的键