Django サイトで多くのモデルを更新するために 1 つの SQL クエリを実行したいと考えています。MySQL(このサイトです)で、1つのchar列/フィールドをidといくつかのテキストに基づいて変更したいのですが、"UPDATE table SET blah = 'prefix'||id||'suffix'"
.
Djangoでこれを行う最初の試みは次のとおりです。
Model.objects.update(blah='prefix'+F('id')+'suffix')
+
しかし、それは MySQLに演算子ではなくを与えようとします||
。
私の次の試みは、その.extra(…)
ようなものを使用することでした:
Model.objects.extra(select={'newvalue':'"prefix"||id||"suffix"'}).update(blah=F('new_value'))
しかし、F(…)
選択から新しいフィールドを見ることができません。
生のSQLに分解せずにこれを行う方法はありますか?