Dostal jsem odpověď na tiket, který jsem odeslal (https://code.djangoproject.com/ticket/22830
). Zřejmě jsem našel zdánlivě nezdokumentovaný (nebo alespoň ne jasně zdokumentovaný) problém, který dwithin
dotazy mají hodnotu Distance
objektů. Vývojář říká toto:
Vypadá to, že se chystají objasnit dokumentaci, aby to bylo jasnější (skvělé!).
Protože chci 5 km, potřebuji převést 5 km na stupně. 1 stupeň je přibližně 111,325 km. Proto 1 km =1/111,325 stupně. 5 km je tedy přibližně 0,0449 nebo asi 0,05 stupně. Takže musím změnit svůj hovor na toto:
touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 0.05))