Привет. Я пытаюсь обновить строку пользователя при входе пользователя в систему. Я просто хочу увеличить количество входов пользователей в систему на единицу. Вот код в методе контроллера post_login:
@expose()
def post_login(self, came_from=url('/')):
"""
Redirect the user to the initially requested page on successful
authentication or redirect her back to the login page if login failed.
"""
if not request.identity:
login_counter = request.environ['repoze.who.logins'] + 1
redirect(url('/user/login', came_from=came_from, __logins=login_counter))
user_name = request.identity['repoze.who.userid']
user = User.by_user_name(user_name)
user.tll_num_logins += 1
user.tll_last_login = datetime.now()
redirect(came_from)
Пользовательская запись просто не обновляется в базе данных. В документации TG говорится, что менеджер транзакций должен сбрасывать все транзакции и автоматически выполнять весь ожидающий SQL, но, похоже, он не работает с обновлением. Я попытался вставить DBSession.commit () после фиксации вручную, но получил сообщение об ошибке. Аналогично, добавление DBSession.flush () в метод контроллера не приводит к ошибке, но фактически не обновляет запись.