Django - 如何对未知数量的值进行或查询
Django - how to make OR query for unknown number of values
我正在开发用户在 GET 请求中传递城市列表的小型应用程序。我需要获取给定城市存在的所有数据。我当前的解决方案有效,但我正在寻找更有效的方法。目前我正在创建单独的数组并在循环中添加以下查询集。有没有办法在一个查询中实现它?
我也考虑过原始查询,但不确定是否推荐。
def get(self, request):
search_phrase = request.GET["search"]
cities = request.GET["city"].split(",")
found_results = []
for city in cities:
found_results += Job.objects.filter(position__icontains=search_phrase, city=city)
return render(request, "search.html", {"results":found_results})
您可以在此处使用 [__in
查找 [Django-doc]](https://docs.djangoproject.com/en/dev/ref/models/querysets/#in:
def get(self, request):
search_phrase = request.GET['search']
found_results = Job.objects.filter(
position__icontains=search_phrase,
<b>city__in=request.GET['city'].split(',')</b>
)
return render(request, 'search.html', {'results':found_results})
我正在开发用户在 GET 请求中传递城市列表的小型应用程序。我需要获取给定城市存在的所有数据。我当前的解决方案有效,但我正在寻找更有效的方法。目前我正在创建单独的数组并在循环中添加以下查询集。有没有办法在一个查询中实现它? 我也考虑过原始查询,但不确定是否推荐。
def get(self, request):
search_phrase = request.GET["search"]
cities = request.GET["city"].split(",")
found_results = []
for city in cities:
found_results += Job.objects.filter(position__icontains=search_phrase, city=city)
return render(request, "search.html", {"results":found_results})
您可以在此处使用 [__in
查找 [Django-doc]](https://docs.djangoproject.com/en/dev/ref/models/querysets/#in:
def get(self, request):
search_phrase = request.GET['search']
found_results = Job.objects.filter(
position__icontains=search_phrase,
<b>city__in=request.GET['city'].split(',')</b>
)
return render(request, 'search.html', {'results':found_results})