2012-04-26 49 views
3

我有一個值,並希望獲得所有具有一列或多列值的實例。爲了使這個更復雜一些,字段列表是動態的。Django:或動態字段名稱的查詢

所以,我有什麼是:['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"}) 

(如Q()產量Q其中 「什麼都不做」,據我可以告訴)

+0

感謝您的更新,因爲不到兩個人可以明確地發生。 – Martin 2012-04-26 19:38:19

+1

沒問題。事實上,我已經拿出了原版,因爲「減少」通常是一個壞主意,新版本在各方面都基本上更好。 – 2012-04-26 19:39:30