0

我有一个这样的ndb模型类:

class User(ndb.Model):
    username = ndb.StringProperty()
    works = ndb.StringProperty(repeated=True)
    created_date = ndb.DateTimeProperty(auto_now_add=True)
    updated_date = ndb.DateTimeProperty(auto_now_add=True)

我使用repeated=True是因为我想将数据保存到列表中的工作字段。但是当我查询是这样的:

user = User.query().fetch(projection=[User.works])

我无法得到我想要的。如果我看user,我会得到这个:

[User(key=Key('User', 5629499534213120), works=[u'A'], _projection=('works',)), User(key=Key('User', 5629499534213120), works=[u'B'], _projection=('works',)), User(key=Key('User', 5629499534213120), works=[u'C'], _projection=('works',)), User(key=Key('User', 5629499534213120), works=[u'D'], _projection=('works',)).......................

为什么我不能得到这个:

[User(key=Key('User', 5629499534213120), works=[u'A', u'B', u'C', u'D'], _projection=('works',))

我能做什么?感谢您的帮助。

4

1 回答 1

2

投影返回实体列表,而不是您想要的方式。看这里:https ://developers.google.com/appengine/docs/python/ndb/queries#projection

您可以循环遍历结果:

for u in user:
    print u.works # To get value of 'works'
    print u.key # Key of the entity, you can access other properties from this key.

希望能帮助到你。

于 2013-08-29T08:47:51.273 回答