12

私の質問は非常に基本的なものです。App Engine Python で子から親エンティティの属性値に直接アクセスする正しい方法を知りたいです。たとえば、次のモデル スキーマがあります。Python 2.7 と NDB を使用しています。

class Gallery(ndb.Model):
    category    = ndb.StringProperty()
    title       = ndb.StringProperty()
    subtitle    = ndb.StringProperty()

class Image(ndb.Model):
    blob_key    = ndb.BlobKeyProperty()
    title       = ndb.StringProperty()
    gallery     = ndb.StringProperty()
    is_slider   = ndb.StringProperty()

ここで「Gallery」は「Image」の親です。それらはエンティティ グループ Exhibition=>Gallery=>Image を形成します。Image モデルの画像を、それらが属するギャラリーの詳細と共に表示したいと考えています。親 (ギャラリーの画像) から子エンティティにアクセスできますが、その逆はできません。Gallery モデルで Image モデルを StructuredProperty として使用したくありません。ほとんどの場合、ギャラリー以外のフラグに基づいてすべての画像から画像を表示しています (is_slider="yes" の場合、すべての画像からスライドショーを生成する状況があるため、画像から直接クエリを実行します) が、関連するギャラリーの情報を表示したい親データへのアクセス方法を知りたい理由。

これは非常に一般的な問題であり、エンティティ グループの先頭に戻って複雑なロジックを使用してギャラリー モデルをクエリするよりも、親に直接アクセスするなどの簡単な解決策を探していると思います。どんな助けでも大歓迎です。

4

1 に答える 1

31

使用する:image_instance.key.parent().get()

https://developers.google.com/appengine/docs/python/ndb/keyclass#Key_parent

于 2012-04-09T00:36:34.787 に答える