Looking at the code again, I see there are 5 more instances of:

Key.from_path

I think they should all be replaced by:

self.keyfunc

(Not necessarily related to the issue btw)

On Monday, September 1, 2014 1:32:33 PM UTC+2, Quint wrote:

> Ok,
>
> I did not test this but from what can see from here the line below needs 
> to be changed. (This line does not yet consider NDB.)
> (in dal.py -> GoogleDatastoreAdapter)
>
> 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 = [Key.from_path(first._tablename, int(i)) for i in second]
>    second = [self.keyfunc(first._tablename, int(i)) for i in second]
>
>  return [GAEF(first.name, 'in', second, lambda a, b:a in b)]
>
> Quint
>
> On Saturday, August 30, 2014 1:37:07 AM UTC+2, Russ King wrote:
>
>>
>> I am struggling to use belongs on GAE+NDB it appears that:
>>
>>     quests = 
>> db(db.question.level.belongs([1])).select(db.question.id,db.question.level) 
>>  is valid  however
>>
>>     quests = db(db.question.id.belongs([1])).select(db.question.id, 
>> db.question.level) generates an error along the lines of 
>>
>> <type 'exceptions.AttributeError'> type object 'question' has no 
>> attribute '__key__'
>>
>> is this because the key field is different from the other fields and is 
>> there some sort of workaround to retrieve a set of records from a list of 
>> keys or am I missing something
>>
>> Regards
>> 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