我有以下代码:
hotels = models.Hotel.objects.filter(
wed=True,
county=hotel_main.county.id,
subscriptions__end_date__gte=datetime.date.today(),
subscriptions__enquiry_count__lte=F('subscriptions__tier__enquiry_limit'),
).filter(Q(x=TRUE|Q(y=True)).distinct()
我有一个列表test = ['x','y','z','w']
过滤器的值会动态变化,所以我使用类似的东西:
filter(Q(test[0]=TRUE|Q(test[3]=True))
动态变化,但当我这样做时,我收到以下错误:
Keyword can't be an expression
我知道我不能在那里使用但是让我知道如何实现这一点......谢谢!
我做了克里斯建议:
test[1] = {x: True}
在我的过滤器中,我按照以下方式执行了
filter(Q(test[1])).
它给了我以下错误:
need more than 1 value to unpack
答案 0 :(得分:1)
使用字典设置密钥,然后将其扩展为**
的kwargs,即:
Q(**{test[0]: True})