我有一些模型共享一组公共属性,我在其他模型继承的基本模型类中定义了这些属性:
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声明,指出它需要一个带有 kind 的键,BaseUser但被赋予了DerivedUserA.
如果我kind从 my 中删除参数MainModel,它会起作用:
class MainModel(ndb.Model):
user = ndb.KeyProperty()
我可以忍受,但我宁愿检查一下,以确保我没有试图在MainModel.user财产中保存任何类型的实体。有没有办法做到这一点?