Привет, я пытаюсь обновить строку пользователя при входе пользователя в систему. Я просто хочу увеличить количество входов пользователей на единицу. Вот код в методе контроллера 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() в метод контроллера не приводит к ошибке, но и фактически не обновляет запись.