这是这个问题的后续:
How do I correctly reference Users in GQL queries on App Engine?
在我的应用程序中,我有一个照片 db.Model,其中每张照片都有一个 UserProperty。我想显示一个用户列表,点击某个用户将显示该用户的所有照片。
创建指向用户照片页面的链接时引用用户的最佳方式是什么?
我发现了两种选择,但都有各自的缺点。
- user.nickname() - 可以在 GQL 查询中使用(例如 Photos.gql("WHERE user = USER(:1)", user.nickname()) ),但是它可以改变,它不一定是唯一的,有时(例如对于 Gmail 地址)user.nickname() 在“@”符号处截断,并且不能用于在不附加“@gmail.com”的情况下进行查找。
- user.user_id() - 这是独一无二的,但我还没有找到通过 user_id() 查找用户的方法
有更好的方法吗?目前,我将用户和 user_id() 存储在照片模型上,通过链接中传递的 user_id 进行 GQL 搜索,然后从照片模型上的 UserProperty 引用用户。
最佳答案
使用user_id
。 “查找”用户并不是真正有意义的操作,除非您想获取他们的电子邮件地址和/或昵称。您应该有一个用户表,用于存储由 user_id
键控的 User
对象,以及您需要的任何其他站点特定信息(例如,首选项、个人资料信息) .
关于google-app-engine - 我应该如何序列化/引用 App Engine 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023572/