遇到一个奇怪的要求...
假设我有这样的模型:
class MyModel(models.Model):
priority = models.IntegerField()
time = models.DateTimeField()
假设我们有:
by_time = MyModel.objects.order_by('time')
by_prio = MyModel.objects.order_by('priority')
我需要以交替的排序顺序呈现这些项目。例如,按时间排序的 1 个项目,按优先级排序的 1 个,按时间排序的下一个项目,依此类推……每个项目在列表中都需要是唯一的(不能只是将两个列表连接成两倍长的列表)。
我怎样才能实现这样的事情并保持相对高效?
编辑: 一些注意事项:
- 结束列表中的项目必须是唯一的,因此我不能只合并两个列表。
- 如果我合并列表并随后删除重复项,则排序顺序将被破坏(例如,相同顺序的 2 个相邻值)。