我在我的一个模型上运行了一堆过滤器。具体来说,在我的一种观点中,我正在做这样的事情:
cities = City.objects.filter(name__icontains=request.GET['name']
cities = City.objects.filter(population__gte=request.GET['lowest_population']
return cities
现在我想添加另一种不同类型的过滤器。具体来说,我只想包括那些与特定邮政编码有一定距离的城市。我已经有了相关的功能,例如:
distanceFromZipCode(city, zipCode)
# This returns 110 miles, for example
如何将 django 的查询集过滤与我想添加的这个附加过滤器结合起来?我知道如果城市只是一个列表,我可以使用 .filter() 并传入适当的 lambda(例如,如果与相关邮政编码的距离小于 100,则返回 true)。
但是我正在处理查询集,而不是简单的列表,那么我该怎么做呢?