2012-04-26 13 views
3

私は値を持っていて、1つ以上の列に値を持つすべてのインスタンスを取得したいとします。これをもう少し複雑にするために、フィールドリストは動的です。Django:動的なフィールド名を持つORクエリ

だから、私は何を持っていることは次のとおりです。['field1', 'field2', 'field3', ...]

私は必要なものは次のとおりです。Q(field1='value') | Q(field2='value') | Q(field3='value') | ...

私はこれを取得できますか?

答えて

7

使用**辞書・ツー・KW-argsを拡張:

q = Q() 
for field in fields: 
    q = q | Q(**{field: "value"}) 

ため、更新のための

+0

おかげで(利回り私の知る限り、 "何もしない" QQ()など)間違いなく2つ以下が起こる可能性があります。 – Martin

+1

問題ありません。実際には、私は元のものを取り出しました。一般に 'reduce'は一般的に悪い考えです。新しいバージョンは基本的にあらゆる面で優れています。 –