我使用哪种属性类型将用户的user_id()放入数据存储区?

时间:2009-10-20 09:10:55

标签: google-app-engine google-cloud-datastore identification

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

  

数据存储区中的用户值没有   如果用户更改她,则会更新   电子邮件地址。这可以补救   未来的版本。在那之前,你可以   使用User值的user_id()作为   用户的稳定唯一标识符。

     

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

     

在数据存储区中,值为   等于电子邮件地址加上   用户的唯一ID。如果用户更改   她的电子邮件地址,新的用户值   将不等于原始用户值   在数据存储区查询中或进行比较时   通过应用程序。如果您的应用需要稳定   你没有改变的标识符   可以单独存储唯一ID   来自用户值。

     

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

我该怎么做?

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

1 个答案:

答案 0 :(得分:0)

通常的答案是“没有属性”:如果你需要一个稳定的标识符,可能是因为你正在查找用户,在这种情况下你应该使用它作为实体的密钥名称,如下所示: / p>

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。