在访问django之外的表时appengine KindError

时间:2009-09-25 00:56:46

标签: google-app-engine django-models google-wave

我在home / models.py中有一个名为Mytable的表,并使用django aep 我引用的是Mytable.all()。

它在数据查看器中显示为home_mytable

现在,对于app.yaml中的一些网址,我有一个单独的处理程序 处理这些请求。 (这实际上是一个谷歌浪潮 机器人处理程序)。

在这个处理程序中,我想引用表home_mytable 我这样做是通过调用db.GqlQuery(“SELECT * from home_mytable”)

来实现的

然而奇怪的事情发生了。我收到了一个KindError 没有类型home_mytable的实现

我偶尔会收到这个,有时它只是有效 很好,我怀疑这是在我打电话给网址后发生的 从django处理程序引用此表。

我的问题是,我该怎么办? a)确保不会发生此错误 b)以编程方式检查可用的内容 '种'是我可以尝试调试这个

1 个答案:

答案 0 :(得分:2)

App Engine Patch monkeypatches您的模型具有不同的类型名称。不要问我为什么,但这就是它的作用。要解决问题,您需要覆盖模型中的kind()类方法,以确保它们始终具有“固定”类型名称,如下所示:

class MyTable(db.Model):
  @classmethod
  def kind(cls):
    return "home_mytable"