0
我需要一个数学表达式为了我的查询半径过滤器:Python的烧瓶SQLAlchemy的ORDER_BY数学表达式 - 不能识别表值浮动
这正是我需要的,但列zimmer_lat
和zimmer_lng
不在这里被认为是来自Zimmer对象的列,但是作为导致float expected error
的字符串。制作一个类型转换为浮动 - float('zimmer_lat')
导致cannot cast string to float error
。
all_rooms_in_city = Zimmer.query.join(User).filter_by(bezahlt=True).order_by(asc(acos(sin(loc_latitude) * sin('zimmer_lat') + cos(loc_latitude) * cos('zimmer_lat') * cos('zimmer_lng' - (loc_longitude))) * 6371))
这里是作品和zimmer_lat
是公认的浮动:
all_rooms_in_city = Zimmer.query.join(User).filter_by(bezahlt=True).order_by(asc('zimmer_lat'))
好,''zimmer_lat''是一个字符串,那么你当然不能把它传递给'math.cos'。您需要在数据库引擎中查找余弦的等价函数,并使用例如'func.cos(Zimmer.zimmer_lat)'。 – univerio