2

Google Appengine ndb からデータを取得したいと考えています。次のコードがあります

keys = []
for field in self.request.arguments():
    keys.append(ndb.Key(models.MyModel, int(id)))

# Some unrelevant code

for k in keys:
    logging.info(k)

m = ndb.get_multi(keys)
for p in m:
    logging.info(p)

これにより、次の出力が得られます。

INFO     2012-09-07 13:18:23,436 main.py:58] Key('MyModel', 42)
INFO     2012-09-07 13:18:23,436 main.py:58] Key('MyModel', 44)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 42)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 43)
INFO     2012-09-07 13:18:23,437 main.py:58] Key('MyModel', 44)
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,443 main.py:62] None
INFO     2012-09-07 13:18:23,444 main.py:62] None

そのID番号のモデルがデータストアに存在すると確信しています。それで、私は何を間違っていますか?

4

1 に答える 1

3

ID は、データストア内の文字列である可能性があります。したがって、 Key('MyModel', '42') が探しているものかもしれません。ID は文字列または整数にすることができます。さらに読むためのドキュメントは次のとおりです

編集: MyModel エンティティに親キーがありますか? はいの場合、キーを作成するときに親を含める必要があります。

于 2012-09-07T14:14:18.007 に答える