Many thanks for reply however this doesn't seem to be a complete fix - code is failing on the 'in' piece of this filter function and I am not clear how this relates to the belongs code up above.
Regards Russ GAE_FILTER_OPTIONS = { '=': lambda q, t, p, v: q.filter(getattr(t,p) == v), '>': lambda q, t, p, v: q.filter(getattr(t,p) > v), '<': lambda q, t, p, v: q.filter(getattr(t,p) < v), '<=': lambda q, t, p, v: q.filter(getattr(t,p) <= v), '>=': lambda q, t, p, v: q.filter(getattr(t,p) >= v), '!=': lambda q, t, p, v: q.filter(getattr(t,p) != v), 'in': lambda q, t, p, v: q.filter(getattr(t,p).IN(v)), } def filter(self, query, tableobj, prop, op, value): return self.GAE_FILTER_OPTIONS[op](query, tableobj, prop, value) On Mon, Sep 1, 2014 at 12:32 PM, Quint <muijsenbe...@gmail.com> 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.) > > 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 a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/_Od_UkKW05w/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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.