我有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))
答案 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()并给出上面的键