python – Google App Engine投影查询可以返回实体密钥吗?

比方说我有:

class Like(db.Model):
    user = db.ReferenceProperty(User,collection_name='likes')
    photo = db.ReferenceProperty(Photo,collection_name='likes_received')
    created = db.DateTimeProperty(auto_now_add=True)

是否可以运行仅返回照片键列表的投影查询?

photos = db.GqlQuery("SELECT photo FROM Like WHERE created < DATETIME(2013, 1, 1, 0, 0, 0)").fetch(10)

上面的代码产生:

BadValueError: Unsupported data type (<class 'models.Photo'>)

最佳答案 我道歉,我的第一个答案是错的.投影查询存在一个实际问题 – 尚未支持ReferenceProperty.阿尔弗雷德正在研究这个问题;因为今天1.6.6预发布SDK已经发布,并且这已经存在于1.6.5 SDk中,我怀疑我们将在1.6.6中修复此问题,但1.6.7是可能的.

作为解决方法,您可以使用db.ListProperty(db.Key),它是一个键列表(您只存储一个键),或者一个StringProperty,其值是键的str().

点赞