1

home/models.py に Mytable というテーブルがあり、django aep を使用して参照するのは Mytable.all() です。

データ ビューアーに home_mytable として表示されます。

現在、app.yaml 内の一部の URL に対して、これらのリクエストを処理する別のハンドラーがあります。(これは実際には Google Wave ロボット ハンドラーです)。

このハンドラー内で、テーブル home_mytable を参照したいので、db.GqlQuery("SELECT * from home_mytable") を呼び出します。

しかし、奇妙なことが起こります。KindError No implementation for kind home_mytable を受け取ります

私はこれを散発的に受け取りますが、時々うまく動作します.djangoハンドラーからこのテーブルを参照するURLを呼び出した直後に発生すると思われます.

私の質問は、a)このエラーが発生しないことを確認し、b)使用可能な「種類」が何であるかをプログラムで確認して、これを試してデバッグできるようにするにはどうすればよいですか

4

1 に答える 1

2

App Engine パッチは、モデルにさまざまな種類の名前を付けるようにモンキー パッチを適用します。理由は聞かないでください。問題を修正するには、モデルの kind() クラス メソッドをオーバーライドして、次のように常に「固定された」種類の名前を使用するようにする必要があります。

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