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

Aar*_*ler 1 google-app-engine

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

class Photo( db.Model ):
    owner = db.UserProperty()
    title = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

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

photos = Photo.gql( "WHERE owner = USER(:1)", users.get_current_user().nickname() )
Run Code Online (Sandbox Code Playgroud)

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

有没有更好的方法来做到这一点,而不是硬编码+"@ gmail.com"到我的所有数据库查询?

Dre*_*ars 5

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