我想做以下事情:
我想说:
query_terms = ["A", "B"]
需要的是以下查询:
House.objects.filter(
Q(name__icontains="A") | Q(building__name__icontains="A",
Q(name__icontains="B") | Q(building__name__icontains="B"
)
我不知道如何将这个“OR”语句与“AND”一起加入动态query_terms列表
答案 0 :(得分:5)
full_query = None
for query in query_terms:
q = Q(name__icontains=query) | Q(building__name__icontains=query)
if full_query is None:
full_query = q
else:
full_query = full_query & q
我可能没有完全正确地对此进行优化,但这些方面的内容应该有效。