如何在App Engine上的GQL查询中正确引用用户?

时间:2011-05-01 01:23:07

标签: google-app-engine

我有一个db.Model,它有一个db.UserProperty。例如:

class Photo( db.Model ):
    owner = db.UserProperty()
    title = db.StringProperty()

当我想为用户获取所有照片时,我会这样做:

photos = Photo.gql( "WHERE owner = USER(:1)", users.get_current_user().nickname() )

但这会导致Google和非Google昵称之间出现问题。在本地测试时,如果我使用电子邮件地址test@example.com,则昵称为“test@example.com”。如果我使用test@gmail.com,则昵称为“test”。当我使用Gmail帐户进行测试时,我必须将“@ gmail.com”附加到.nickname()。

对于我的所有数据库查询,有没有比硬编码+“@ gmail.com”更好的方法呢?

1 个答案:

答案 0 :(得分:5)

photos = Photo.gql("WHERE owner = :1", users.get_current_user())