edo1z blog

プログラミングなどに関するブログです

GAE Keyを文字列で取得した場合にオブジェクトを取り出す方法

将来の俺ならこのタイトルでわかるだろう。

GAEのmodelにはkeyがあります。これは各エンティティに固有のキーです。これはKeyオブジェクトのインスタンスですが、文字列に変更できます。よって、サイト上でこの文字列をやり取りし、後程このkey文字列をもとにエンティティを取得することができます。db.Key(文字列)によって、文字列はKeyオブジェクトのインスタンスに変わります。後は、db.get(Keyインスタンス)とすることで、エンティティが取り出せます。

obj = MyModel(name="Foo")
self.response.write('<a href="/view?key=%s">%s</a>' % (str(obj.key()), obj.name()))

# ...

key_name = self.request.get('key')
obj = db.get(db.Key(key_name))


データの作成、取得、削除 - キーを使用したエンティティの取得