Google App Engine:KindError - 没有针对'ObjectName'的实现

时间:2010-07-12 21:08:48

标签: google-app-engine model

我正在谷歌应用引擎中编写一个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 - 没有针对'Cheese'的实现。我想说:“臭奶酪”

我做错了吗?我不允许向db.Model对象添加方法吗?

1 个答案:

答案 0 :(得分:10)

听起来thing实际上是从db.ReferenceProperty()字段(在非Cheese实体上)加载的,恰好是指Cheese实体。如果您在未先导入Cheese模型的情况下访问此类属性,则代码将无法找到构造实体的Cheese种类,并且会因您指出的错误而失败。

无论如何,尝试在导致错误的代码中导入Cheese模型。然后代码应该能够在需要时找到Cheese的实现。

回答问题的其他部分:是的,您当然可以将自己的方法添加到db.Model子类中。