我有查询集列表(全部用于同一模型):
results = Entry.objects.all()
result_elms = []
if city_list:
for city in city_list:
result_elms.append(results.filter(address__city__icontains=city))
if county_list:
for county in county_list:
results_elms.append(results.filter(address__county__icontains=county))
#other filters here, daynamically created
#how can I combine all results_elms (querysets) into one?
我知道我可以使用 |
运算符来组合来自同一模型的查询集。
但是如何将它应用于 result_elms
列表中的所有元素?
最佳答案
您可以使用 Q
对象:
from django.db.models import Q
results = Entry.objects.all()
q = Q()
for city in city_list:
q = q | Q(address__city__icontains=city)
results.filter(q)
文档 ( https://docs.djangoproject.com/en/1.7/topics/db/queries/#complex-lookups-with-q ) 包含更多详细信息和示例。
关于python - Django 组合多个查询集(相同模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236667/