в настоящее время используется следующая конструкция в коде:
user = db.session.query(User).filter_by(secret_key=args['secret_key']).with_for_update().first()
...
if user.smth == true:
...
...
user.balance = user.balance - cost
db.session.commit()
таблица User содержит в себе 30 полей и вся эта информация выгружается в user, но при этом в самом коде используются только буквально 2-3поля, а обновляется вообще только одно.
Если бы не необходимость произвоть коммит для изменения баланса пользователя писал бы так:
db.session.query(User.smth, User.smth2, User.smth3).filter_by(secret_key=args['secret_key']).with_for_update().first()
но такой запрос возвращает мне tuple и не даёт возможности делать измения в БД.
Есть ли способ не выдергивать все 30 полей из пользователя чтобы сделать изменения в одной конкретной колонке?
Как правильно это сделать используя SQLAlchemy ORM?