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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to