google app engine - Attribute Error: '_BaseValue' object has no attribute 'value' -


i'm having strange issue in google app engine sdk v1.8.2.1. sdk seems have issue way retrieve property value. entity so:

class userdb(endpointsmodel):     userid = ndb.stringproperty(required=true, indexed=true)     name = ndb.stringproperty(required=true, indexed=true)     update = ndb.datetimeproperty(indexed=true)     orgs = ndb.structuredproperty(providers, repeated=true, indexed=true)     system = ndb.structuredproperty(system, repeated=true, indexed=true)     comp = ndb.structuredproperty(comp, repeated=true, indexed=true) 

from datastore viewer:

orgs.value (list) [u'comp', u'system'] 

my cron job code:

class cronrefresh(webapp2.requesthandler):     def get(self):           user in userdb.query().fetch():             org in user.orgs:                 provider.additems(user.key, org.value) 

when print org.value console log there no problem when try pass function throws following error.

info     2013-07-29 17:28:30,980 module.py:595] default: "post / http/1.1" 200 594 error    2013-07-29 21:28:37,374 webapp2.py:1552] '_basevalue' object has no attribute 'value'  traceback (most recent call last):    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__      rv = self.handle_exception(request, response, e)    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__      rv = self.router.dispatch(request, response)    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher      return route.handler_adapter(request, response)    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__      return handler.dispatch()    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch      return self.handle_exception(e, self.app.debug)    file "c:\program files (x86)\google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch      return method(*args, **kwargs)    file "e:\main.py", line 74, in      provider.additems(user.key, org.value)  attributeerror: '_basevalue' object has no attribute 'value'  info     2013-07-29 17:28:37,382 module.py:595] default: "get /cron/refresh http/1.1" 500 114 info     2013-07-29 17:28:49,043 module.py:595] default: "get /cron/refresh http/1.1" 200 - 

but if run cron job twice go through fine. see i'm doing wrong? expected behavior?

update: provider import wrote. appreciated.

update2: added additems function. have confirmed apple_list proper list of dictionaries.

def additems(key, x): user = key.get() if x == 'apple':     def add(item):         newobject = apple(name=item['name'], status=item['status'], obtained=item['obtained'])         objectlist = user.query().fetch()[0].apple         object in objectlist:              if (object.name == item['name'] , (object.status != item['status'] or object.obtained != item['obtained'])):                 logging.debug("if #1 happened")                 continue             elif (object.name == item['name'] , object.status == item['status'] , object.obtained == item['obtained']):                 logging.debug("if #2 happened")                 continue             else:                 logging.debug("else happened")                 continue      if not user.query().fetch()[0].apple:         item in apple_list:             user.apple.append(apple(name=item['name'], status=item['status'], obtained=item['obtained']))             user.put()     else:         item in apple_list:             add(item) 

apparently, user.orgs has been put() database. "mutates" _basevalue, described here: list items repeated stringproperty mutated _basevalue on put.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

c++ - End of file on pipe magic during open -