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. Есть какие-либо способы обработать эту ошибку?


Ответы (0 шт):