我在模型上有一個屬性,允許用戶對對象進行排序。我必須根據列表更新元素的順序,該列表包含新順序中的對象的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