使用django orm生成更新查询

Evg*_*Evg 9 python django orm sql-update

我需要使用django orm来实现这个查询:

update table set field=field+1 where id=id
Run Code Online (Sandbox Code Playgroud)

我不想用这个:

o = model.objects.get(id=id)
o.field+=1
o.save()
Run Code Online (Sandbox Code Playgroud)

因为它使用select和何时更新,而不是线程安全.

如何通过orm实现这个?

Dan*_*man 31

以前的回答者都有解决方案的一部分:你应该update结合使用F():

Model.objects.filter(id=id).update(field=F('field') +1))
Run Code Online (Sandbox Code Playgroud)

请注意,这样就完成了就地更新,而根本不需要SELECT.