Jag fick ett svar på biljetten jag skickade in (https://code.djangoproject.com/ticket/22830
). Tydligen hittade jag ett till synes odokumenterat (eller åtminstone inte tydligt dokumenterat) problem som dwithin
frågor har med Distance
objekt. En utvecklare säger så här:
Det verkar som att de kommer att förtydliga dokumentationen för att göra detta tydligare (bra!).
Eftersom det jag vill ha är 5 km måste jag konvertera 5 km till grader. 1 grad är ungefär 111,325 km. Därför är 1 km =1/111,325 grader. 5km är därför ungefär 0,0449 eller ungefär 0,05 grader. Så jag behöver bara ändra mitt samtal till detta:
touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 0.05))