他のモデルが継承する基本モデルクラスで定義した、共通のプロパティセットを共有するモデルがいくつかあります。
class BaseUser(ndb.Model):
name = ndb.StringProperty()
class DerivedUserA(BaseUser):
# some additional properties...
class DerivedUserB(BaseUser):
# some additional properties...
BaseUser
他のモデルでは、派生モデルへの参照が必要です。
class MainModel(ndb.Model):
user = ndb.KeyProperty(kind = BaseUser)
DerivedUserA
ただし、プロパティにエンティティキーを設定しようとするとMainModel.user
、GAEは、BadValueError
種類のあるキーを期待しているBaseUser
が、が与えられていることを示しDerivedUserA
ます。
kind
から引数を削除するとMainModel
、次のように機能します。
class MainModel(ndb.Model):
user = ndb.KeyProperty()
私はそれと一緒に暮らすことができましたが、私はむしろ私がMainModel.user
プロパティ内のいかなる種類のエンティティも保存しようとしていないことを確認するために適切な場所にチェックを入れたいと思います。それを行う方法はありますか?