У меня есть куча объектов с атрибутами местоположения (PointFields).У меня есть два специальных местоположения, и я хочу знать, к какому из этих мест каждый объект ближе всего и насколько это далеко.То есть я хотел бы сделать что-то вроде:
q0 = q.distance(p0).extra(select={'dist_from': p0})
q1 = q.distance(p1).extra(select={'dist_from': p1})
qq = take_obj_with_min_distance(q0, q1)
(Фактический запрос будет делать некоторые вещи с bboverlaps и location__distance_lt, возможно, задействует более двух специальных местоположений и, возможно, объекты с несколькими атрибутами местоположения.Тем не менее, я думаю, что решение выше будет обрабатывать все эти другие вещи.)
Впоследствии, qq должен иметь те же элементы, что и q, но каждый элемент имеет атрибут distance и атрибут dist_from, где атрибут distanceэто минимум расстояния от p0 и расстояния от p1, а dist_from - это точка, с которой он достигает этого минимума.
Можно ли это сделать?Здорово ли это для детей и других живых существ?
Я подумал о слиянии запросов и выполнении этих вещей со списком, но, конечно, вы не можете объединить запросы с дополнительными значениями выбора (например, введенными дистанционными запросами).).Кроме того, позже я хочу отфильтровать qq.