我的问题是我有这段代码。
reset_numbers = Picture.objects.filter(author__id=author.id)
for index, pic in enumerate(reset_numbers):
pic.number = index
pic.save()
我想重置图片的顺序。 如何在一个查询或更少的查询中执行此操作以摆脱for循环?
有没有办法做到这一点?
答案 0 :(得分:1)
pks = Picture.objects.filter(author__id=author.id).values_list('pk', flat=True)
for index, pk in enumrate(pks):
Picture.objects.filter(pk=pk).update(number=index)
这只加载主键,只更新number
字段。但查询计数与原始代码相同。