2

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に分解せずにこれを行う方法はありますか?

4

2 に答える 2

1

いいえ。Django の ORM は multi db compilant です。このようなカスタム db 機能は同梱されていません。

于 2012-11-27T10:09:05.233 に答える
0

あなたの質問を正しく理解していれば、これが役立つかもしれません:

blah = '%s %s %s' %(prefix, id, suffix)

Model.object.update(blah=blah)
于 2012-11-27T11:49:52.930 に答える