dea*_*ase 3 python django django-models
我有查询集的列表(全部用于同一模型):
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?
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用|运算符组合来自同一模型的查询集。但是如何将其应用于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)
Run Code Online (Sandbox Code Playgroud)
该文档(https://docs.djangoproject.com/en/1.7/topics/db/queries/#complex-lookups-with-q)包含更多详细信息和示例。
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |