10

実際の値を見つけるためにデータベースをヒットせずに、データベースの値をインクリメントしたいと思います。事実上、私はこのようなことをしたいのですが...しかしこれはうまくいきません。エレガントなソリューションはありますか?

P.objects.filter(username='John Smith').update(accvalue+=-50)

ありがとう!

4

1 に答える 1

17

DjangoのF()オブジェクトを確認してください。

これをupdate()メソッドと組み合わせて、前のフィールド値に基づいて値を更新できます。

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

これは、データベースのネイティブUPDATEメソッドを使用して、実行したいことを実行します。

于 2012-07-03T17:43:51.733 に答える