我有以下设计的请求: - example.com/?param1=blah¶m1=blah1....param1=blahn。请注意,我想让param1具有多个参数。现在要捕获参数param1的值,我执行以下操作
searchQery = request.GET.getlist('param1')
我得到一个包含param1值的列表。我想使用复杂的查询
for item searchQuery:
val = MyModel.objects.filter(Q(item__startswith=searchQuery[0])| Q(item__startswith=searchQuery[1])| Q(item__startswith=searchQuery[2])) all the way to searchQuery[n]
简而言之,我想动态地遍历列表的值,并且当前在那里丢失。
答案 0 :(得分:1)
from operator import or_
val = MyModel.objects.filter(reduce(or_,(Q(item__startswith=x) for x in searchQuery)))
使用reduce
组合生成的Q
表达式序列。