我在模型上有一个属性,允许用户对对象进行排序。我必须根据列表更新元素的顺序,该列表包含新顺序中的对象的ID;现在我遍历整个查询集并设置一个对象。对整个查询集执行相同操作最简单/最快的方法是什么?Django:查询集中对象的更新顺序属性
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()
猜测它只保存一次就可以获取所有项目(所有项目都必须更新,因此您的解决方案也会遍历所有项目)。 – 2010-06-24 01:11:50