простое обновление в sqlalchemy - PullRequest
7 голосов
/ 19 июня 2009

Таблица пользователей:

  • id (INT)

  • имя (STR)

  • last_login (DATETIME)

При обработке запроса веб-страницы у меня есть идентификатор пользователя , и я только хочу обновить поле last_login до «сейчас».

Мне кажется, что есть 2 пути:

  1. выдача прямого SQL с использованием db_engine (потеря маппера)

  2. ИЛИ сначала запросить пользователя, а затем обновить объект

Оба прекрасно работают, но выглядят довольно отвратительно в коде.

Кто-нибудь знает о более элегантном способе выполнить обновление без запроса с использованием sqlalchemy? Есть ли другой ORM, который получил это право?

Спасибо

1 Ответ

23 голосов
/ 19 июня 2009

Предполагается, что у вас есть пользовательская таблица сопоставления:

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

Дополнительные параметры в документах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...