getattr()
- это функция , а не метод в вашем Stats
экземпляре. Используйте его для получения определенных имен атрибутов из экземпляра вашей модели:
row = session.query(Stats).get(id)
rewards = {}
for c in Stats.__table__.columns:
if c == 'u_state':
continue
rewards[c] = getattr(row, c)
return max(rewards, key=lambda key: rewards[key])
Обратите внимание, что c
это столбец, а не строка. В любом случае, лучше использовать API проверки времени выполнения здесь:
for name in inspect(Stats).columns.keys():
if name == 'u_state':
continue
rewards[name] = getattr(row, name)