【问题标题】:Django chaining multiple queries together to return latestDjango将多个查询链接在一起以返回最新的
【发布时间】:2014-11-01 19:38:09
【问题描述】:

我有 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))

【问题讨论】:

    标签: django django-queryset


    【解决方案1】:

    如果你只想要 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() 并给出上述键

    【讨论】:

    • 这正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多