2009-06-19 12 views
7

usertable es:sencilla actualización en sqlalchemy

  • id (INT)

  • nombre (STR)

  • last_login (DATETIME)

Sirviendo a una página Web solicitar tengo un ID de usuario en la mano y solo deseo t o actualice el campo last_login a 'ahora'.

Me parece que hay 2 maneras:

  1. tema un SQL directa utilizando db_engine (perdiendo el asignador)

  2. o una consulta al usuario primero y luego actualizar el objeto

Ambos funcionan bien, pero se ven bastante repugnantes en el código.

¿Alguien conoce una forma más elegante de hacer una actualización sin consulta usando sqlalchemy? ¿Hay otro ORM que lo haya hecho bien?

Gracias

Respuesta

23

Asumiendo que tiene un mapeador usertable en su lugar:

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

parámetros adicionales en el docs.

+1

Enlace real a los documentos: http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.update – NorthCat