0

这就是我需要将 user_id() 放入数据存储区的原因:

如果用户更改其电子邮件地址,则数据存储中的用户值不会更新。这可能会在未来的版本中得到纠正。在此之前,您可以使用 User 值的 user_id() 作为用户的稳定唯一标识符。

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#users_User

在数据存储中,该值等于电子邮件地址加上用户的唯一 ID。如果用户更改了她的电子邮件地址,新的用户值将不等于数据存储查询中的原始用户值或应用程序比较时的值。如果您的应用需要一个不会更改的稳定标识符,您可以将唯一 ID 与 User 值分开存储。

http://code.google.com/appengine/docs/python/users/userobjects.html

我该怎么做?

你是怎么知道的(或者你在哪里查到的?)

4

1 回答 1

0

通常的答案是“无属性”:如果您需要一个稳定的标识符,可能是因为您正在通过它查找用户,在这种情况下,您应该使用它作为实体的键名,如下所示:

class UserInfo(db.Model):
  is_admin = db.BooleanProperty(required=True, default=False)

user_info = UserInfo.get_or_insert(users.get_current_user().user_id())

如果您确实需要在别处存储用户的标识符,则可以使用 db.StringProperty 来存储用户 ID。

于 2009-10-20T13:49:02.110 回答