2017-02-06 14 views
2

に私はDjangoのクエリセットの更新を呼び出すことができますどのように、それはDjangoのクエリセットの更新()+ =の方法

Entry.objects.filter(pub_date__year=2010).update(count+=1) 

どのように私はそれを達成することができますが、以下のように、特定の値を書き込むが、そこにすでに値を変更しないのですか?

答えて

6

あなたはドキュメントからF expressionを使用することができます。

記者= Reporters.objects.filter(名= 'タンタン')

reporter.update(stories_filed = F( 'stories_filed') + 1)

これを試してみてください:

from django.db.models import F 
Entry.objects.filter(pub_date__year=2010).update(count=F('count') + 1) 
1
for e in Entry.objects.filter(pub_date__year=2010): 
    e.count+= 1 
    e.save() 
+2

ありがとうございますが、この解決策は明白であり、私は更新プログラムのforループを避けることを好むでしょう。 – matousc

関連する問題