1

PolyModel ベースのクラスは SelfReferenceProperty として使用できますか?

私は以下のコードを持っています:

class BaseClass(polymodel.PolyModel):
    attribute1 = db.IntegerProperty()
    attribute2 = db.StringProperty()

class ParentClass(BaseClass):
    attribute3 = db.StringProperty()

class ChildClass(BaseClass):
    parent = db.SelfReferenceProperty(collection_name = 'children')


p = ParentClass()
p.attribute1 = 1
p.attribute2 = "Parent Description"
p.attribute3 = "Parent additional data"
p.put()

c = ChildClass()
c.attribute1 = 5
c.attribute2 = "Child Description"
c.parent = p.key()
c.put()

このコードを実行し、開発サーバーの管理インターフェイスを介してデータストアをチェックします。親インスタンスはデータストア クラス = 'BaseClass,ParentClass' に保存されますが、子は保存されません。ブラウザーへのエラー出力はなく (デバッグがオンになっています)、アプリのランチャーのログには何もありません。

これは可能ですか?

4

1 に答える 1

0

ここで何も変えていないというのは嘘です。実際には、「parent」属性を「parent_ref」に変更する必要がありました。また、 SelfReferenceProperty から ReferenceProperty(Parent, collection_name = 'children') に変更するまで、参照は期待どおりに機能しませんでした

しかし、最終的には、ポリモーフィックな自己参照は機能します。

于 2010-04-14T01:42:24.363 に答える