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})