안녕하세요, 사용자 로그인시 사용자 행을 업데이트하려고합니다. 단순히 사용자 로그인 수를 1만큼 늘리고 싶습니다.turbogears에서 DBSession을 사용하여 레코드를 업데이트하는 방법 2
@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)
사용자 레코드가 단순히 데이터베이스 업데이트지고 밤은 : 여기 post_login 컨트롤러 방식의 코드입니다. TG 설명서에 따르면 트랜잭션 관리자가 모든 트랜잭션을 플러시하고 모든 미해결 SQL을 자동으로 실행해야하지만 업데이트가 제대로 작동하지 않는 것으로 보입니다. 나는 수동으로 커밋하지만 오류 메시지가 나타나면 DBSession.commit()을 넣으려고했습니다. 마찬가지로 컨트롤러 메서드에 DBSession.flush()를 추가해도 오류는 발생하지 않지만 레코드를 실제로 업데이트하지는 않습니다.
DBSession.commit()에서 어떤 오류 메시지가 나타 납니까? – codeape