为什么我不能在GAE中的Python中的Session变量中存储UserID(users.get_current_user())?

时间:2012-08-14 16:22:46

标签: python google-app-engine

我正在尝试将UserID存储在Google App Engine(Python)中的会话变量中。

会话变量功能正常。事实上,我甚至可以将密钥存储在会话中。这有效:

    self.session['Xuser'] = user.key.id()

这不起作用:

    self.session['Xuser'] = users.get_current_user()

我甚至尝试通过先将UserID放入另一个变量来欺骗系统。这也行不通:

    tempcode = users.get_current_user()
    self.session['Xuser'] = tempcode

当我尝试将UserID放入会话变量时,问题仅在于第二行。任何人都可以告诉我为什么以及我需要做什么才能将UserID存储在会话变量中,以便我可以比较它

我需要这样做,因为我有一个UserSupplement类型,我不希望用户能够为同一个UserID为这种类型添加多个条目。

感谢。

2 个答案:

答案 0 :(得分:1)

您要在会话中存储的所有对象都必须是可序列化的。 User显然不是。

答案 1 :(得分:1)

尝试

self.session['Xuser'] = users.get_current_user().user_id()