我有一个查询集列表(所有查询集都用于同一模型):
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
列表中的所有元素?
3条答案
按热度按时间lfapxunr1#
您可以使用
Q
对象:文档(https://docs.djangoproject.com/en/1.7/topics/db/queries/#complex-lookups-with-q)有更多的细节和示例。
yqkkidmi2#
如果你使用的是Django 1.11以上版本,那么这是一个一行程序。
这里是文档的链接。你可以参考我的blog post来获得更多的例子。
wbrvyc0a3#
如果您使用的是Django 3.2或更高版本,则如下所示
这里是文档的链接。