У меня ошибка:
BadRequestError: приложение "dev~myapp" не может получить доступ к данным приложения "s~myapp"
Что похоже, но противоположный ответ на этот вопрос а>.
Однако ответ, похоже, не относится к моему приложению (даже пытаясь перевернуть его с ног на голову) - у меня есть только одно приложение, и я не использую удаленный API, и я не использую ключи urlsafe, и все мои ключи свойства db.ReferenceProperty
s или db.ListProperty( db.Key )
s.
Ошибка возникает в первой строке шаблона, который я пытаюсь отобразить:
Файл "/.../template.html", строка 1, код шаблона верхнего уровня
{% extends "page.html" %}
Если я закомментирую эту строку, произойдет ошибка:
Файл "/.../template.html", строка 1, код шаблона верхнего уровня
<!--{% extends "page.html" %}-->
Это подсказало мне, что ошибка заключается в фактической загрузке шаблона с помощью Jinja до применения магии шаблона.
template.html
визуализируется с переменными, которые являются списками сущностей (не Query
объектов, а [e for e in queryObject]
s). Если я заменю их пустым списком, страница будет отображаться нормально.
Хранилище данных моего сервера разработки заполнено резервной копией с рабочего сервера, но до сих пор у меня не было проблем с доступом к этим записям. Я получаю эти списки объектов следующим образом:
@staticmethod
def gql(query, *a, **kw):
keys = super(Model, Model).gql(query, *a, **kw).run(keys_only=True)
cached = []
for key in keys:
inCache = memcache.get('Model_'+str(key))
if inCache:
cached.append(inCache)
else:
fromDB = Model.get(key)
memcache.set('Model_'+str(key), fromDB)
cached.append( fromDB )
return cached
Я могу распечатать результаты с помощью logging
до рендеринга с помощью Jinja. В интерактивной консоли тоже все нормально.
Почему это становится попыткой доступа к данным другого приложения и вызывает это исключение, когда Jinja его отображает?