使用Django Querysets查询多个值

时间:2017-05-17 14:44:52

标签: django django-queryset geodjango

我有FooBar型号。每个模型都有一个GeoDjango point属性。我想返回一个查询集,其中包含任何 Bar半径2公里范围内的所有Foo个。大约有5000 Foo s和900 Bar s因此任何详尽的解决方案都需要很长时间,例如我目前的解决方案:

query = Q()
radius = 2
for foo in Foo.objects.iterator():
    if foo.point:   
        point = foo.point
        query = query | Q(point__distance_lt=(point, radius))

bars = Bar.objects.filter(query)

有更快的方法吗?或者我犯了哪些错误使其无法估量?

0 个答案:

没有答案