2012-04-26 67 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