django orm を使用してこのクエリを実装する必要があります。
update table set field=field+1 where id=id
私はこれを使いたくない:
o = model.objects.get(id=id)
o.field+=1
o.save()
select と when update を使用し、スレッドセーフではないためです。
orm経由でこれを実装する方法は?
django orm を使用してこのクエリを実装する必要があります。
update table set field=field+1 where id=id
私はこれを使いたくない:
o = model.objects.get(id=id)
o.field+=1
o.save()
select と when update を使用し、スレッドセーフではないためです。
orm経由でこれを実装する方法は?
前の回答者は両方ともソリューションの一部を持っています:update
と組み合わせて使用する必要がありますF()
:
Model.objects.filter(id=id).update(field=F('field') +1))
これは、SELECT をまったく必要とせずにインプレース UPDATE を行うことに注意してください。
を使用できますupdate
。詳細はドキュメントに記載されています