I have established at least a work-around to this issue by updating
google.py file in adapters and creating a new class to use instead of GAEF
when ndb is being used:
class GAEFNDB(object):
#This is a work around to belongs not working on id fields when using
ndb
def __init__(self,name,op,value,apply):
self.name=name=='id' and '_key' or name
self.op=op
self.value=value
self.apply=apply
def __repr__(self):
return '(%s %s %s:%s)' % (self.name, self.op, repr(self.value),
type(self.value))
and then if the code for belongs is then updated to
def BELONGS(self,first,second=None):
if not isinstance(second,(list, tuple, set)):
raise SyntaxError("Not supported")
if not self.use_ndb:
if isinstance(second,set):
second = list(second)
if first.type == 'id':
second = [self.keyfunc(first._tablename, int(i)) for i in
second]
if self.use_ndb:
return [GAEFNDB(first.name,'in',second,lambda a,b:a in b)]
return [GAEF(first.name,'in',second,lambda a,b:a in b)]
it seems to work again - however it's not terribly elegant and it seems to
be totally beyond me to complete the testing process on GAE such that it
could be submitted as a bug-fix. However perhaps someone can review and
advise.
Cheers
Russ
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.