0

У меня есть приложение, которое успешно работало в прошлом. Однако сегодня, когда я пытаюсь писать в хранилище данных, он начинает выдавать ошибку. Например, я создаю новую сущность этой моделиAppengine throwing BadRequestError: property.name - это пустая строка

class EventInstallment(ndb.Model): 
     somekey = ndb.KeyProperty() 
     somename = ndb.StringProperty(default = "") 
     start_date = ndb.DateTimeProperty() 
     notes = ndb.StringProperty("") 

     moderator_approved = ndb.BooleanProperty(default = True) 
     added_by = ndb.KeyProperty() 

     created = ndb.DateTimeProperty(auto_now_add = True) 

, используя этот код

ins = somemodel() 
    ins.somename = "26-september-2016" 
    ins.somekey = the_key 
    ins.start_date = datetime.datetime.now() 
    ins.put() 

и это исключение брошено.

Traceback (most recent call last): 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/admin/__init__.py", line 363, in post 
     exec(compiled_code, globals()) 
     File "<string>", line 8, in <module> 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py", line 3451, in _put 
     return self._put_async(**ctx_options).get_result() 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 383, in get_result 
     self.check_success() 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 427, in _help_tasklet_along 
     value = gen.throw(exc.__class__, exc, tb) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/context.py", line 824, in put 
     key = yield self._put_batcher.add(entity, options) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 427, in _help_tasklet_along 
     value = gen.throw(exc.__class__, exc, tb) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/context.py", line 358, in _put_tasklet 
     keys = yield self._conn.async_put(options, datastore_entities) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 513, in _on_rpc_completion 
     result = rpc.get_result() 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result 
     return self.__get_result_hook(self) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 1881, in __put_hook 
     self.check_rpc_success(rpc) 
     File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 1373, in check_rpc_success 
     raise _ToDatastoreError(err) 
    BadRequestError: The property.name is the empty string. 

Любая идея, что может быть эта проблема? Это похоже на изменение в GAE ndb - так как оно работало еще 1 месяц назад ...

ответ

1

Не должно быть notes = ndb.StringProperty("") be: notes = ndb.StringProperty(default = "")?

+0

О, боже мой! Ты прав!? Странно, что он работал до и локально. Но исправление, которое фиксировало проблему в производстве. Ты жжешь!! – user714852

Смежные вопросы