我正在开发一个使用Web2py的网络应用。我的auth_user表有一个用户名字段。我面临的问题是当我更新用户的用户名时,auth.user.username会一直返回旧值,直到用户注销并再次登录。
此外,有时我注意到即使对给定的用户ID进行新的db查询,它也会返回过时的用户名。为什么会这样?
答案 0 :(得分:3)
auth.user
存储在会话中(以及其他一些与auth相关的数据)。这避免了必须在每个请求上对用户数据执行db查询。因此,更新db中的记录不会更新会话中的auth.user
对象。如果用户使用内置的auth.profile()
功能更新自己的个人资料,则auth.user
会自动更新。否则,您必须自己更新:
auth.user.update(username='my new name')