BadRequestError: приложение s ~ myapphr не может получить доступ к данным приложения ~ myapphr.Зачем? - PullRequest
3 голосов
/ 14 февраля 2012

Я использую среду исполнения Python 2.7 с NDB из пакета SDK 1.6.2 в Google App Engine.

Я получаю следующую ошибку:

BadRequestError: app s ~ myapphr не может получить доступ к приложениюДанные dev ~ myapphr

Исходя из этого кода:

device = model.Key(urlsafe=device_id).get()

Я обращаюсь к своему приложению с dev.myapp.appspot.com, который имеет псевдоним myapphr.device_id был создан в той же версии dev.myapphr.

Что происходит?

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012

Префикс, который вы видите там ("s ~" и "dev ~"), называется разделом. Вы можете использовать флаг --default_partition для dev_appserver.py, чтобы изменить префикс с "dev ~" на "s ~".

3 голосов
/ 14 февраля 2012

сервер dev имеет значение default_partition по умолчанию 'dev', а на производстве приложения HRD получают раздел 's'. Если вы создадите ключ urlsafe на сервере dev и сохраните его в виде строки, он не будет работать на производственном сервере с другим разделом. способ сделать ключи переносимыми - сохранить их в ReferenceProperty с помощью db или KeyProperty на ndb.

...