我正在谷歌应用引擎中编写一个 db.Model 类,它看起来像这样:
class Cheese(db.Model):
name = db.StringProperty()
def say_cheese(self):
return name + "cheese"
出于某种原因,每当我运行:
cheese = Cheese(name = "smelly")
print thing.say_cheese()
我得到一个 KindError - 没有实现 kind 'Cheese'。我想让它说:“臭奶酪”
难道我做错了什么?我不允许向 db.Model 对象添加方法吗?
最佳答案
听起来 thing
实际上是从 db.ReferenceProperty()
字段(在非 Cheese
实体上)加载的,该字段恰好是指 Cheese
实体。如果您在没有首先导入 Cheese
模型的情况下访问这样的属性,那么代码将无法找到 Cheese
类型来构造实体,并且会因您指示的错误而失败。
无论如何,尝试在导致错误的代码中导入 Cheese
模型。然后代码应该能够在需要时找到 Cheese
的实现。
回答问题的另一部分:是的,您当然可以将自己的方法添加到 db.Model
子类中。
关于google-app-engine - 谷歌应用引擎 : KindError - No implementation for kind 'ObjectName' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3232289/