запрос с плавающей точкой работает только до 9.99 - api колбы - PullRequest
0 голосов
/ 04 июня 2018

У меня есть столбец "цена" в моем API

price = db.Column(db.Float)

Мне нравится запрашивать эту цену:

def get(self, id, aPrice, bPrice):

        meal = MealModel.query.filter(MealModel.category.has(id=id)).all()

        if meal:
            return[meal.json() for meal in MealModel.query.filter(MealModel.category.has(id=id), MealModel.price >= aPrice, MealModel.price <= bPrice).all() ]

        return{'message': 'mealId not found'}, 404

с этой маршрутизацией:

api.add_resource(MealbyCat, '/meal/category/<int:id>/<float:aPrice>/<float:bPrice>')

Это работает до bPrice = 9,99 абсолютно верно

С bPrice = 10,0 я получаю только еду по цене до 1,99 с 20,0 до 2,99 .. и так далее ...

такое же поведение с100.0

Почему происходит такое поведение?И как я могу решить это?

1 Ответ

0 голосов
/ 04 июня 2018

Я думаю, что MealModel.price, aPrice, MealModel.price и bPrice - строки.При сравнении строк "2.5"> "20" и т. Д. Попробуйте

 return[meal.json() for meal in MealModel.query.filter(MealModel.category.has(id=id), float(MealModel.price) >= float(aPrice), float(MealModel.price) <= float(bPrice)).all()

Если это сработает, рассмотрите возможность размещения float() в лучшем месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...