4 ms·
Site.objects.annotate( distance=Degrees(ACos(Cos(.....))), latpoint=float(lat), lngpoint=float(lon), ).order_by("distance")[:5] for
by rtpg 2mo ago
Site.objects.annotate(
distance=Degrees(ACos(Cos(.....))),
latpoint=float(lat),
lngpoint=float(lon),
).order_by("distance")[:5]
for function calls, look at django.db.models.functions, you can find a bunch of stuff in there or create custom ones super easily (like "two lines of codes" easily)
I mean you have a thing that works in theory so it's a bit of navel gazing, though.
- ErroneousBosh 2mo agoThat is actually awesome :-) I'll try that. I was really just going to try and wrap it in a function to stick in the model so I can say something like Site.objects.get(id=thing).distance_from(lat,long) in. But, now the bit that I was calling that from is actually being done from a websocket handler, and that's written in Go because Django and websockets seems very complex.