2009-06-11 12 views
2

私はDjangoを1年以上使用してきましたが、私はいくつかの非常に基本的なことを忘れてしまったと思います。私はむしろ大規模なクエリセット(1000 +オブジェクト)を持っており、そのクエリセットの各オブジェクトの単一の属性を変更したいと思います。これは本当に行く方法ですか?私はもっ​​と単純なものがあると確信していますか?クエリーセット内の各オブジェクトの属性を変更する

for obj in qs: 
    obj.my_attr = True 
    obj.save() 

おかげ

答えて

14

これはモデルのsave()コールバックを発生しませんが、あなただけの、一括で変更を行うことができます。

MyModel.objects.filter(..).update(my_attr=True) 

ドキュメント:Updating multiple objects at once

+0

ああ、私はできません私は完全に '更新'方法を逃したと信じて!ありがとう。 –

+1

+1 - あなたの「できないかもしれない」が「できない」に変更できると思いますが、そうですか? –

+0

うわー、申し訳ありませんが、私はドキュメントを見つける前にそれを書きました。 :) –

関連する問題