我有一些模型共享一组公共属性,我在其他模型继承的基本模型类中定义了这些属性:
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
财产中保存任何类型的实体。有没有办法做到这一点?