質問

AppEngineのmodels.pyでモデルを宣言しました:

class Post(db.Model):
topic = db.ReferenceProperty(Topic, collection_name='posts', verbose_name=_('Topic'))
(..)

class Topic(db.Model):
(..)
last_post = db.ReferenceProperty(Post, collection_name='last_topic_post')

問題はReferencePropertyにModelクラスが必要ですが、Postを宣言するときにTopicクラスは宣言されていません。切り替え後のPostクラスでも同じことが起こります。これを解決する方法は?

ありがとう。

役に立ちましたか?

解決

ReferencePropertyは、モデルクラスの代わりにNoneを受け入れます。これは、「型制限なし」を意味します。その分野で。ただし、これは良い解決策ではありません。

参照:

http://code.google.com/appengine /docs/python/datastore/typesandpropertyclasses.html#ReferenceProperty

このような循環参照をモデルに保持することはお勧めできません。参照を保存するのではなく、オンデマンドで last_post を見つける必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top