我有一个带有属性的模型:
_foo = db.ListProperty(db.Key)
@property
def foo(self):
return [db.get(f) for f in self._foo]
_foo
是Bar
个键的列表,其中:
class Barbie(polymodel.PolyModel):
#...
class Bar(Barbie):
#...
但是,当调用get()
中的foo
时,我会得到:
KindError:没有类型'Bar'的实现
Every other question我发现这个问题的回答是“你需要导入那种模型”。
好吧,我有。为了进行健全性检查,我将db.get
更改为Bar.get
并得到了同样的错误。如果我然后删除我的导入,显然我得到'全局名称栏未定义',所以它正在接受该导入好。
其他问题不是关于PolyModels的,所以我尝试将我的Bar
和兄弟模型更改为db.Model
,使用重复属性而不是PolyModel
的派生。然后,它立即起作用。
为了检查我没有改变任何其他内容,我恢复了PolyModel
,它立即打破了KindError
。
为什么这个get
无法使用PolyModel
课程,但对于db.Model
课程却没有问题 - 根据the docs,PolyModel
只会增加可用的方法。