增加django数据库中的值

sna*_*ies 8 database django

我想增加数据库中的值,而不必在db上执行命中以查找实际值.实际上,我想做这样的事情......但这不起作用.优雅的解决方案?

P.objects.filter(username='John Smith').update(accvalue+=-50)
Run Code Online (Sandbox Code Playgroud)

谢谢!

bx2*_*bx2 12

查看Django的F()对象.

您可以将其与update()方法结合使用,以根据previos字段值更新值

>>> from django.db.models import F
>>> P.objects.filter(username="John Smith").update(accvalue=F("accvalue") + 50)
Run Code Online (Sandbox Code Playgroud)

这将使用数据库的本机UPDATE方法来执行您想要执行的操作.

  • 我可以在不查询的情况下获得增值吗?这将避免并发访问的问题 (2认同)