appengine KindError при доступе к таблице за пределами django
У меня есть таблица с именем Mytable в home/models.py, и я использую django aep. Я ссылаюсь на Mytable.all().
Он отображается в средстве просмотра данных как home_mytable
Теперь для некоторых URL в app.yaml у меня есть отдельный обработчик, который обрабатывает эти запросы. (Это на самом деле обработчик Google Wave робота).
В этом обработчике я хочу сослаться на таблицу home_mytable. Я делаю это, вызывая db.GqlQuery("SELECT * from home_mytable")
Однако происходит нечто странное. Я получаю KindError Нет реализации для вида home_mytable
Я получаю это время от времени, хотя иногда это работает просто отлично, я подозреваю, что это происходит сразу после того, как я вызываю URL, который ссылается на эту таблицу из обработчика django.
Мои вопросы: как я могу: а) убедиться, что эта ошибка не возникает, и б) программно проверить, какие есть "виды", чтобы я мог попытаться отладить эту ошибку?
1 ответ
App Engine Patch позволяет вашим моделям иметь разные имена. Не спрашивай меня почему, но это то, что он делает. Чтобы исправить ситуацию, вам необходимо переопределить метод класса kind() в ваших моделях, чтобы убедиться, что у них всегда есть "фиксированные" имена вида, например:
class MyTable(db.Model):
@classmethod
def kind(cls):
return "home_mytable"