Если задать идентификатор объекта, я запрошу его models = Model.get_by_id(id)
. Тем не менее, я узнаю, что через некоторое время он не вернет результат в целом.
Есть ли альтернативный или рекомендуемый метод запроса по идентификатору объекта в Google App Engine, python?
Проблема исчезает сама по себе после 2011-05-10, которая является датой запуска версии v1.5. Не уверен, что эта проблема связана.
Я не менял никакого кода, так как get_by_id() был в порядке и в течение нескольких дней. Кроме того, я добавил задание cron для запуска get_by_id() каждую минуту и попытаюсь запустить экземпляр экземпляра.
Из моего наблюдения, get_by_id() не удалось, потому что он не мог запросить хранилище данных.
Btw, настройка хранилища данных - репликация ведущего/ведомого.
Если вы сохраняете экземпляры класса с родителем, то get_by_id не вернет объект, но вместо этого вернет None из-за того, что ключ не является завершенным, что требует также родительского ключа. Я столкнулся с той же проблемой и был боль в заднице, чтобы понять.
ico = Icons.get_by_id("3", parent = parentkey)
Это вернет объект.; -)
Если Model.get_by_id(id)
возвращает None
, это означает, что вы указали недействительный идентификатор, а не тот, что сам метод ненадежен.
Не исключено, что этот метод может выйти из строя в случае сбоя системы, но если это произойдет, ваш вызов вызовет исключение хранилища данных, а не возвращает пустой результат.
get_by_id()
всегда получает объект, если прошедший объект является допустимым идентификатором объекта и если объекты существуют в хранилище данных.
id можно получить object.key.id
в templat
else у вас всегда есть object.get(key).