2

ドキュメントを検索しましたが、次のようなクエリを実行する簡単な方法が見つかりません。

SELECT columns FROM table WHERE col_a + col_b = @param

を使用できることはわかって.extra(where=['col_a + col_b = %s' % whatever])いますが、これはパラメーター化されていません。

ORMでこれを行う方法はありますか(つまり、なしでextra)? それ以外の場合、そのクエリを実行する最もクリーンな方法は何ですか?

4

1 に答える 1

0

F() 式でフィルタリングを試みることができます。ここを参照してください: https://docs.djangoproject.com/en/dev/topics/db/queries/#filters-can-reference-fields-on-the-model

これを試して:

from django.db.models import F
Something.objects.filter(col_a=CONST-F('col_b'))

試したことはありませんが、次のように動作する可能性があります: CONST = 10 で、列 B がたとえば 8 の場合、列 A が 2 の場合にのみフェッチします。

于 2012-10-14T10:45:38.427 に答える