simple update in sqlalchemy

python, sqlalchemy

Solution

Assuming you have a mapper UserTable in place:

DBSession.query(UserTable).filter_by(id = user_id).\
    update({"last_login":datetime.datetime.now()}, synchronize_session=False)

Additional parameters in the docs.

Problem

UserTable is: id (INT) name (STR) last_login (DATETIME) Serving a web page request i have a user id in hand and I only wish to update the last_login field to 'now'. It seems to me that there are 2 ways: issue a direct SQL using db_engine (losing the mapper) OR query the user first and then update the object Both work fine but look quite disgusting in code. Is anyone aware of a more elegant way of doing an update-with-no-query using sqlalchemy? Is there another ORM who has got this right? Thanks

Original source