gpt4 book ai didi

google-app-engine - 使用模型继承时,ndb.KeyProperty 可以引用基模型类吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:48 25 4
gpt4 key购买 nike

我有一些共享一组公共(public)属性的模型,我在其他模型继承的基本模型类中定义了这些属性:

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 的 key ,但得到了一个 DerivedUserA

如果我从 MainModel 中删除 kind 参数,它会起作用:

class MainModel(ndb.Model):
user = ndb.KeyProperty()

我可以接受,但我宁愿进行检查以确保我没有尝试在 MainModel.user 属性中保存任何类型的实体。有办法吗?

最佳答案

使用 PolyModel 进行数据存储继承 -> https://developers.google.com/appengine/docs/python/ndb/polymodelclass

关于google-app-engine - 使用模型继承时,ndb.KeyProperty 可以引用基模型类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com