django orm, annotate, django.db.utils.OperationalError: user-defined function raised exception
В annotate я пытаюсь посчитать дистанцию между пользователями.
from django.db.models.functions import ACos, Cos, Sin, Radians
from math import radians
def get_queryset(self):
request_user = self.request.user.geolocation
self_latitude = radians(request_user.latitude)
self_longitude = radians(request_user.longitude)
latitude = Radians('geolocation__latitude', output_field=FloatField())
longitude = Radians('geolocation__longitude', output_field=FloatField())
return User.objects.annotate(distance=
6371 * ACos(Sin(self_latitude) * Sin(latitude) + Cos(self_latitude
) * Cos(longitude) * Cos(self_longitude - longitude))
)
django.db.utils.OperationalError: user-defined function raised exception
Данный метод работает, если из вычисления убрать ACos. Есть какие-либо способы обработать эту ошибку?