我从两个模型查询:
fq = MyModel.objects.order_by('-added_time')
sq = MySecondModel.objects.order_by('-added_time')
例如,查询集是:
1_1, 1_2, 1_3
2_1, 2_2, 2_3
我想要:
1_1, 2_1, 1_2, 2_2, 1_3, 2_3
我试过的是:
all_res = list(fq) + list(sq)
但它给 1_1, 1_2, 1_3, 2_1, 2_2, 2_3
我应该怎么做才能达到我想要的?我正在使用paginator
,因此结果也应该是queryset。
编辑:
这就是我现在正在做的事情:
fq= MyModel.objects.order_by('-added_time')
sq = MySecondModel.objects.order_by('-added_time')
all_res = sorted(chain(fq, sq),key=attrgetter('-added_time'))
我有这种类型的分页,我在页面中设置左右距离。
我设置的左右距离如下:
min = all_res.number - 5
max = all_res.number + 5
这行给我错误:'list' object has no attribute 'number'
因为all_res
是列表。
您是要对它们进行排序还是要对它们进行隔行扫描?如果是前者,
all_res = sorted(list(fq) + list(sq), key = lambda x: (x[-1], x[0]))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句