1

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

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

现在,对于 app.yaml 中的一些 url,我有一个单独的处理程序来处理这些请求。(这实际上是一个 google wave 机器人处理程序)。

在这个处理程序中,我想通过调用 db.GqlQuery("SELECT * from home_mytable") 来引用表 home_mytable

然而奇怪的事情发生了。我收到 KindError No implementation for kind home_mytable

我偶尔收到这个,有时它工作得很好,我怀疑这发生在我从 django 处理程序调用一个引用该表的 url 之后。

我的问题是,我如何 a) 确保不会发生此错误和 b) 以编程方式检查可用的“种类”是什么,以便我可以尝试调试它

4

1 回答 1

2

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

class MyTable(db.Model):
  @classmethod
  def kind(cls):
    return "home_mytable"
于 2009-09-25T13:22:12.930 回答