Web2py auth.user对象返回过时的数据

时间:2012-10-24 23:45:11

标签: web2py

我正在开发一个使用Web2py的网络应用。我的auth_user表有一个用户名字段。我面临的问题是当我更新用户的用户名时,auth.user.username会一直返回旧值,直到用户注销并再次登录。

此外,有时我注意到即使对给定的用户ID进行新的db查询,它也会返回过时的用户名。为什么会这样?

1 个答案:

答案 0 :(得分:3)

auth.user存储在会话中(以及其他一些与auth相关的数据)。这避免了必须在每个请求上对用户数据执行db查询。因此,更新db中的记录不会更新会话中的auth.user对象。如果用户使用内置的auth.profile()功能更新自己的个人资料,则auth.user会自动更新。否则,您必须自己更新:

auth.user.update(username='my new name')