我有一个django应用程序,它的任务存储在数据库中,类似于kanban板类型的布局,每个记录都有一个列和它们在列表中的顺序。
问题是,此列表可以在一列中获得数百或数千条记录,根据用户放置该列更新的卡片的位置更改列,并对该列中的所有记录重新计算/设置顺序。
是否有一种比重流程更有效的方法来更新数千条记录来设置订单?
发布于 2022-07-12 20:31:08
我建议使用Django的F功能来用算术值规则更新查询集中的所有对象。
类似于:
Model.objects.filter(…).update(order=F('order') - 1)https://docs.djangoproject.com/en/4.0/ref/models/expressions/
一个更复杂但更聪明的答案:https://stackoverflow.com/a/72894011/10992051
发布于 2022-07-12 19:09:28
您可能希望使用bulk_update来更有效地大量更新记录:
https://docs.djangoproject.com/en/4.0/ref/models/querysets/#bulk-update
https://stackoverflow.com/questions/72957221
复制相似问题