我在我的模型上有一个属性,允许用户对对象进行排序。我必须根据包含新顺序中对象ID的列表更新元素的顺序;现在我正在遍历整个查询集并逐个设置对象。如何用整个查询集执行相同操作的最简单/最快方法是什么?
def update_ordering(model, order):
""" order is in the form [id,id,id,id] for example: [8,4,5,1,3] """
id_to_order = dict((order[i], i) for i in range(len(order)))
for x in model.objects.all():
x.order = id_to_order[x.id]
x.save()