Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用引擎投影查询能否返回实体键?_Python_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Python 谷歌应用引擎投影查询能否返回实体键?

Python 谷歌应用引擎投影查询能否返回实体键?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,假设我有: 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.G

假设我有:

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.ListPropertydb.Key,它是一个只存储一个键的键列表,或者是一个StringProperty,其值是该键的str。

您能否提供更多关于如何使其工作的信息?我几乎尝试了我所能想到的每一种排列,在投影查询中指定ReferenceProperty总是失败。当使用文档引用的投影查询中允许的任何其他属性时,使用完全相同的代码:Photo类已导入,正在文件中的其他位置使用。我通常观察到与@Sologoub相同的行为。只在SDK中测试过,不确定是否也在生产中测试过。似乎不支持引用属性的投影查询。让我四处问问。太棒了,谢谢你提供的信息和建议的解决办法!