Реальная история.
Потому что я много о GeoDjango не знаю, и я не точно, как база данных, что вы используете обрабатывает его на заднем конце, я не могу точно сказать, что это более эффективно, чем цикл через все модели , но функция distance_lte, кажется, своего рода функции, которые вы ищете. Я бы себе представить, что эта база данных будет обрабатывать его настолько эффективно, насколько разумно возможно.
http://docs.djangoproject.com/en/1.3/ref/contrib/gis/geoquerysets/#distance-lteКонечно, тот факт, что каждый заказ имеет свое собственное максимальное расстояние делает трудным ... Так, что я хотел бы сделать это в жизни "максимальная" максимальное расстояние, а затем использовать функцию, чтобы ограничить цикл тем, что в пределах "максимальная" расстояние.
Так, например, если выбор на максимальное расстояние было <30 миль, то вы берете точку, найти все заказы в течение 30 ми точки, используя функцию, а затем цикл, чтобы отфильтровать те, которые слишком далеко. Там может быть более простой способ сделать это, но это самый лучший способ, которым я могу найти в данный момент.