поднял BadValueError (у сущности есть неинициализированные свойства: creation_by) - PullRequest
0 голосов
/ 15 октября 2018

Я получаю 500 ошибок.Я проверил журналы на Google App Engine.И я узнаю, что это произошло из-за поднятой ошибки BadValueError (у сущности есть неинициализированные свойства: creat_by)

есть снимок экрана журналов.есть чек ниже.enter image description here

модель, в которой мы используем создание хранилища данных:

class YoProject(BaseNDBExpando):
project_name = ndb.StringProperty(required=True)
***created_by = ndb.KeyProperty(required=True)***
created_by_name = ndb.StringProperty(required=True, indexed=False)
client_name = ndb.StringProperty(required=True)
client_spoc_name = ndb.StringProperty(required=True, indexed=False)
client_spoc_email = ndb.StringProperty(required=True)
type_ = ndb.StringProperty(required=True, choices=["tm", "pa"])
description = ndb.TextProperty(indexed=False)
hidden = ndb.BooleanProperty(required=True, default=False)

она работала нормально.но когда я пытаюсь ввести в него свойство класса. Я начинаю получать эту ошибку, а также на панели инструментов GAE Datastore, есть два одинаковых свойства разных типов данных, которые я не рассматриваю, как справиться с этой ситуацией.нужна помощь и помощь от старших разработчиков.

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Я думаю Я также видел эту ошибку в мои первые дни GAE, когда я все время модифицировал модели сущностей, я гораздо более неохотно делаю это сейчас, так как знаю, что такие изменениянужна дополнительная осторожность и почти всегда стратегия миграции.

Я получил ее после того, как добавил параметр required=True в свойство модели.Опция вызывает ошибку, если вы пытаетесь установить put am сущность без установленного свойства, очевидно.Но это также вызывает ошибку при попытке получить сущность put в хранилище данных без заданного свойства до того, как опция была включена в модели.Это то, что я подозреваю, может происходить.Обратите внимание, что эта проверка относится только к ndb, поэтому она повлияет на код вашего приложения, но не на средство просмотра консоли или приложения, использующие другие клиентские библиотеки.

Просмотрите все объекты такого рода в Entitymenu , проверка которого не имеет установленного свойства.

Попробуйте включить отладку для вашего приложения (путем передачи debug=True в вызове webapp2.WSGIApplication() вашего приложения), который должен показать трассировку, прикрепленную к соответствующему журналу запросов.Было бы полезно выяснить, где именно произошла ошибка.

Дубликаты, выделенные вами на изображении Dashboard, могут быть красными сельдями - в моих приложениях я также вижу похожие, без побочных эффектов (или, по крайней мере, с теми, которые я заметил).

IЯ не уверен, что некоторые из них не являются побочными эффектами различных изменений, которые я сделал вовремя для моделей сущностей, в частности переключение параметра indexed для некоторых свойств.

Но я почти уверенСтроковые / текстовые просто вызваны тем, что свойства хранилища данных Текстовая строка индексируются, только если значение имеет менее 1500 байтов (то есть то, что считается различными типами свойств в ndb - TextProperty и StringProperty).

Также обратите внимание, что индексы 0B являются нормальными для свойств, которые не индексируются, см., Например, ваше свойство description.

0 голосов
/ 15 октября 2018

Если вы находитесь в локальной среде, я бы посоветовал вам удалить / очистить все объекты этой модели.

Затем попробуйте воспроизвести его, используя другое слово, чем classes в качестве имени свойства.

...