に私はDjangoのクエリセットの更新を呼び出すことができますどのように、それはDjangoのクエリセットの更新()+ =の方法
Entry.objects.filter(pub_date__year=2010).update(count+=1)
どのように私はそれを達成することができますが、以下のように、特定の値を書き込むが、そこにすでに値を変更しないのですか?
に私はDjangoのクエリセットの更新を呼び出すことができますどのように、それはDjangoのクエリセットの更新()+ =の方法
Entry.objects.filter(pub_date__year=2010).update(count+=1)
どのように私はそれを達成することができますが、以下のように、特定の値を書き込むが、そこにすでに値を変更しないのですか?
あなたはドキュメントから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)
for e in Entry.objects.filter(pub_date__year=2010):
e.count+= 1
e.save()
ありがとうございますが、この解決策は明白であり、私は更新プログラムのforループを避けることを好むでしょう。 – matousc