Nested selects are not supported on GAE. Replace this

ids = db(db.geoip.begin_num <= value)._select(db.geoip.id)
rows = db((db.geoip.end_num >= value) &
db.geoip.id.belongs(ids)).select()

with

ids = [r.id for r in db(db.geoip.begin_num <=
value).select(db.geoip.id)]
rows = db((db.geoip.end_num >=
value)&db.geoip.id.belongs(ids)).select()

On Oct 4, 11:50 pm, firedragon852 <[email protected]> wrote:
> On GAE, this doesn't work:
> rows = db((db.geoip.begin_num <= value) & (db.geoip.end_num >=
> value)).select()
>
> BadFilterError: BadFilterError: invalid filter: Only one property per
> query may have inequality filters (<=, >=, <, >)..
>
> So I broke the query into two queries:
> ids = db(db.geoip.begin_num <= value)._select(db.geoip.id)
> rows = db((db.geoip.end_num >= value) &
> db.geoip.id.belongs(ids)).select()
>
> I got the following error:
> File "/home/skwong/web2py/applications/init/models/db.py", line 74, in
> geoip
>     rows = db((db.geoip.end_num >= value) &
> db.geoip.id.belongs(ids)).select()
>   File "/home/skwong/web2py/gluon/contrib/gql.py", line 346, in
> belongs
>     return Query(self, 'IN', value)
>   File "/home/skwong/web2py/gluon/contrib/gql.py", line 570, in
> __init__
>     right = long(right or 0)
> TypeError: long() argument must be a string or a number, not 'tuple'
>
> Is this expected?

Reply via email to