Python Django中基于对象坐标的高效查询方法

Python Django中基于对象坐标的高效查询方法,python,django,Python,Django,我将检索几个对象,并根据它们的起始位置为每个对象创建一个单独的列表 例如,我们有一个6个对象的查询,它们都有不同的start\u loc。我想列出一个列表,其中对象之间的起始位置在30米以内 所以,这个列表看起来像 [[obj1,obj2,obj3],[obj4,obj5]] 我的代码如下: hikes = Hikes.objects.all().order_by('start_loc') eff_hikes = _eff_hikes(hikes) def _eff_hikes(hikes

我将检索几个对象,并根据它们的起始位置为每个对象创建一个单独的列表

例如,我们有一个6个对象的查询,它们都有不同的
start\u loc
。我想列出一个列表,其中对象之间的
起始位置
在30米以内

所以,这个列表看起来像

[[obj1,obj2,obj3],[obj4,obj5]]

我的代码如下:

hikes = Hikes.objects.all().order_by('start_loc')

eff_hikes = _eff_hikes(hikes)


def _eff_hikes(hikes):
    ref_coords = []
    for i in range(len(hikes) - 1):
        this_hike = hikes[i].start_loc
        next_hike = hikes[i+1].start_loc
        dis = D(m=this_hike.distance(next_hike))

        if this_hike != next_hike and dis > D(m=30):
            ref_coords.append() = hikes[:i+1]
    # some more code

    return ref_coords


这没有帮助,使我的代码变得复杂。这个问题有更好的解决方案吗?

你是如何按位置排序的?我假设位置是二维向量或列表,我错了?。