2011-10-03 69 views
0

请告诉我如何使这个查询动态:创建一个动态查询

products = category.product_set.filter(Q(feature__value__value='Red') 
|Q(feature__value__value='Blue'), feature__name__name='Color') 

我需要显示所有的颜色红色和蓝色的产品。

并请告诉我如何更好地做到这一点查询:

产品全部用红色和蓝色,但与选项-1。我的理解是正确的?:

products = category.product_set.filter(Q(feature__value__value='Red') 
|Q(feature__value__value='Blue'), feature__name__name='Color').filter(Q(feature__value__value='Yes') 
|Q(feature__value__value='No', feature__name__name='Option-1') 

回答

0

我想你要找的东西是这样的:

# create a dynamic set of keywords 
kwargs = {} 
name = 'Color' 
# since you're looking for literals, I would simply use 'in' as the query 
kwargs[name + "__in"] = ['Red','Blue'] 

products = category.product_set.filter(**kwargs) 
+0

非常感谢你:) – user962963

+0

@ user962963如果你喜欢这个答案,你可以将其标记为接受;-) – cwallenpoole