クエリーセット内の複数のレコードを効率的に更新するにはどうすればよいですか?Django:一度に複数のレコードを更新するにはどうしたらいいですか?
クエリーセットをループして編集し、それぞれにsave()
を呼び出しますか? psycopg2のexecutemany
と同等ですか?
クエリーセット内の複数のレコードを効率的に更新するにはどうすればよいですか?Django:一度に複数のレコードを更新するにはどうしたらいいですか?
クエリーセットをループして編集し、それぞれにsave()
を呼び出しますか? psycopg2のexecutemany
と同等ですか?
各レコードを異なる値で更新する必要がある場合は、各レコードを繰り返し処理する必要があります。それらをすべて同じ値で更新したい場合は、クエリーセットのupdateメソッドを使用してください。
クエリーセットの更新メソッドを使用できます。ここではドキュメントがあります:
http://docs.djangoproject.com/en/dev/ref/models/querysets/#update
あなたはコードを見れば、それはアイテムをループを行います。実際、これはDjangoの管理者がアイテムに対して「一括」アクションを実行するときに使用するものです。
@lee、私は更新を使用できるかわかりません。異なるレコードには異なる更新値があります。 – goh
ありがとう、しかしexecutemany()と同じです – goh
@goh私は100%とは言えませんが、もしあれば私は非常に驚くでしょう。各レコードを変更した後にsaveを呼び出すので、バックエンドがバッチ処理する必要があることを知る機会はありません。そうする方法があるかもしれませんが、直接クエリセット/モデルAPIはあなたのケースでそれを行うべきではありません。 –
ご意見ありがとうございます。 – goh