Django - 通过排序合并两个查询集

3 投票
2 回答
3341 浏览
提问于 2025-04-17 21:01

我有两个模型,我是这样查询它们的:

firstq = FirstModel.objects.order_by('-addedtime')
secondq = SecondModel.objects.order_by('-addedtime')

我想把它们合并,并按照 addedtime 字段进行排序。它们都有这个字段。

我该怎么做呢?

| 只在我有两个来自同一个模型的查询时有效。但这里我有两个不同的模型。

2 个回答

4

我觉得这可能对你有帮助

from itertools import chain
def get_all_data():
    first = FirstModel.objects.filter()
    second = SecondModel.objects.filter()
    result_list = sorted(
        chain(first, second),
        key=lambda data: data.addedtime, reverse=True)
    return result_list
1

你可以这样做:

 from itertools import chain
 result_list = list(chain(firstq, secondq))

撰写回答