'没有实施Kind'当Kind是PolyModel孩子时

时间:2014-08-31 19:37:37

标签: 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]

_fooBar个键的列表,其中:

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 docsPolyModel只会增加可用的方法。

0 个答案:

没有答案