Python 如何在GAE上投影的查询中获取重复属性的所有值

Python 如何在GAE上投影的查询中获取重复属性的所有值,python,google-app-engine,Python,Google App Engine,我有一个ndb模型,它有一个列出多个值的ComputedProperty sku_name = ndb.ComputedProperty(lambda self: makekeys(self.sku, self.name), indexed=True, repeated=True) makekeys创建了一个包含两个参数的列表,所以并没有什么特别的 执行以下操作: query = cls.query() data = query.fetch(projection=[Pricelist.sku_

我有一个ndb模型,它有一个列出多个值的ComputedProperty

sku_name = ndb.ComputedProperty(lambda self: makekeys(self.sku, self.name), indexed=True, repeated=True)
makekeys创建了一个包含两个参数的列表,所以并没有什么特别的

执行以下操作:

query = cls.query()
data = query.fetch(projection=[Pricelist.sku_name])
for d in data:
    logging.info(d.sku_name)
仅获取d.sku_名称中的第一个值,而不是ComputedProperty列表中的所有值

# result with projection
[u'0300022']
在没有投影的情况下执行相同操作,sku_名称的所有值都可以作为列表提供

# result without projection but the full data record
[u'0300022', u'sbrpgznplus100']
我做错了什么?

来自文档:

投影具有多个值的特性不会填充所有值 该属性的值。相反,将返回一个单独的实体 对于与查询匹配的每个唯一投影值组合


这并不能真正回答问题。我只有一个重复的属性,而不是多个属性。它说,“一个具有多个值的(单一)属性(对于单一属性)”是的,但它不起作用,或者至少我不知道如何访问投影中的值。必须用软件检查它。但现在我明白你的意思了谢谢你的提示。有了509条记录,我真的从带有投影的查询中得到了712条记录。所以每个键都被列出了。