#python #sqlalchemy
#python #sqlalchemy
Вопрос:
Я пытаюсь вернуть результат a hybrid_method
из моего запроса:
session.query(Table1.weight_time(date, Table2.daily_weight))
Где date
находится datetime
объект и Table2.daily_weight
является следующим:
@hybrid_method
def weight_time(self, curr_match_date, daily_weight):
no_days = curr_match_date - self.date_time_inferred
return min(daily_weight ** no_days, daily_weight)
Однако я получаю следующую ошибку:
Exception has occurred: TypeError
Boolean value of this clause is not defined
Если я отключусь min()
, я получу другую ошибку:
Exception has occurred: TypeError
unsupported operand type(s) for ** or pow(): 'InstrumentedAttribute' and 'BinaryExpression'
Я явно пытаюсь заставить взаимодействовать два объекта, которые не нравятся друг другу 🙂
Я попытался изменить запрос на:
session.query(Table1.weight_time(date, 2))
Но я по-прежнему получаю те же ошибки, что и раньше.
Как я мог это решить?
Комментарии:
1. @Carcigenicate — да, я это понимаю. Я просто не знаю, как преобразовать их в правильный тип!
2. Похоже, вы передаете в метод атрибуты столбца модели, а не значения?
3. @snakecharmerb — привет! Я пытаюсь вернуть результат
hybrid_method
из моего запроса. Итак, что-то вродеqry = session.query(Table.weight_time(curr_match_date)
wherecurr_match_date
являетсяdatetime
объектом4. На самом деле — подождите. Запутался. Позвольте мне кое-что проверить
5. Исходная ошибка не была исправлена! Обновлено