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 に答える