Python Django-TypeError:必须是实数,而不是F(注释)

Python Django-TypeError:必须是实数,而不是F(注释),python,sql,django,postgresql,django-orm,Python,Sql,Django,Postgresql,Django Orm,我正在尝试创建一个方法,该方法返回一个QuerySet或带有距给定点距离的地块(通过LAT,LNG) 问题是它返回错误: @classmethod def get_closest_parcels(cls, lat: decimal.Decimal, lng: decimal.Decimal, county=None) -> ParcelQuerySet: return Parcel.objects.annotate(distance=point_dist(lat, lng, F('

我正在尝试创建一个方法,该方法返回一个
QuerySet
或带有距给定点距离的地块(通过LAT,LNG)

问题是它返回错误:

@classmethod
def get_closest_parcels(cls, lat: decimal.Decimal, lng: decimal.Decimal, county=None) -> ParcelQuerySet:
    return Parcel.objects.annotate(distance=point_dist(lat, lng, F('lat'), F('lng')))
错误

我的目标是找到5个最近的包裹

你知道如何使用Django ORM来实现吗?

使用

F()
是一个表达式(确切地说是一个SQL表达式),而不是一个值。
geo.pyx in h3._cy.geo.point_dist()

TypeError: must be real number, not F
return Parcel.objects.annotate(distance=point_dist(..., ExpressionWrapper(F('lat'), output_field=DecimalField()) ,...))