如何按顺序更新模型的所有现有对象。
例如,拥有自定义对象1,2,3,4,5的对象。
删除customid 3,然后我需要重新评估其余部分。
increment = 0
for obj in allobj:
Obj.objects.filter(id=obj.id).update(customid=increment)
increment = increment + 1
然后获取自定义1,2,3,4
答案 0 :(得分:1)
我假设customid
不是主键(永远不会像这样更新主键)。要调整对象,您可以使用:
from django.db.models import F
Obj.objects.filter(customid__gt=3).update(customid=F('customid') - 1)
查询customid
列大于3的所有对象,并从该列中减去1。如果您的customid
序列之前是顺序的,则此更新将恢复序列。
执行一个更新查询,服务器端。