Python ';没有实现种类';当Kind是一个多模儿童时
我有一个具有以下属性的模型:Python ';没有实现种类';当Kind是一个多模儿童时,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我有一个具有以下属性的模型: _foo = db.ListProperty(db.Key) @property def foo(self): return [db.get(f) for f in self._foo] \u foo是条键的列表,其中: class Barbie(polymodel.PolyModel): #... class Bar(Barbie): #... 但是,当调用foo中的get()时,我得到一个: KindError:种类“Bar”没有
_foo = db.ListProperty(db.Key)
@property
def foo(self):
return [db.get(f) for f in self._foo]
\u foo
是条
键的列表,其中:
class Barbie(polymodel.PolyModel):
#...
class Bar(Barbie):
#...
但是,当调用foo
中的get()
时,我得到一个:
KindError:种类“Bar”没有实现
我发现这个问题的答案是“你需要为这种类型导入模型”
嗯,我有。为了检查是否正常,我将db.get
更改为Bar.get
,得到了相同的错误。如果我删除了我的导入,很明显我得到了“全局名称栏没有定义”,所以它可以选择导入
但是,这些其他问题并不是关于多模型的,所以我尝试将我的Bar
和兄弟模型更改为db.model
s,具有重复的属性,而不是PolyModel
的派生。然后,它立即起了作用
为了检查我没有更改任何其他内容,我恢复到了PolyModel
,它立即与相同的kinderor
中断
为什么这个
get
不适用于PolyModel
类,而适用于db.Model
类-根据,PolyModel
只会添加到可用的方法中。我这样做时它会起作用。也许你的实际代码没有完全按照你描述的那样做?嗯。我没有提到\u foo
是一个条码和Barn
的列表,它们都来自芭比娃娃。但是它在第一个(一个条
,这是我用条检查的。get
)