こんにちは私はユーザーがログインしたときにユーザー行を更新しようとしています。単にユーザーのログイン数を1つ増やしたいだけです。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()をコントローラーメソッドに追加してもエラーは発生しませんが、実際にはレコードも更新されません。