我正在谷歌应用引擎中编写一个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对象添加方法吗?
答案 0 :(得分:10)
听起来thing
实际上是从db.ReferenceProperty()
字段(在非Cheese
实体上)加载的,恰好是指Cheese
实体。如果您在未先导入Cheese
模型的情况下访问此类属性,则代码将无法找到构造实体的Cheese
种类,并且会因您指出的错误而失败。
无论如何,尝试在导致错误的代码中导入Cheese
模型。然后代码应该能够在需要时找到Cheese
的实现。
回答问题的其他部分:是的,您当然可以将自己的方法添加到db.Model
子类中。