【问题标题】:Django - merge two querysets by sorting themDjango - 通过对它们进行排序来合并两个查询集
【发布时间】:2014-03-06 01:52:49
【问题描述】:

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

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

我想按addedtime 字段对它们进行合并和排序。他们都有这个领域..

我该怎么做?

| 仅在我有来自同一模型的 2 个查询时才有效。但我这里有 2 种不同的型号..

【问题讨论】:

    标签: python django


    【解决方案1】:

    我认为这可以帮助你

    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
    

    【讨论】:

      【解决方案2】:

      你做这样的事情:

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

      【讨论】:

      • 这会评估firstqsecodq吗?
      猜你喜欢
      • 2019-10-11
      • 2015-07-05
      • 2022-10-04
      • 1970-01-01
      • 2015-01-26
      • 2014-04-12
      • 2023-03-18
      • 1970-01-01
      • 2016-09-23
      相关资源
      最近更新 更多