query = query&(db.sarua[request.vars.refine.lower()].like('%'+request.vars.value.lower + '%'))
On Apr 5, 1:34 pm, Johann Spies <johann.sp...@gmail.com> wrote: > Using this form: > > veld = ['affiliation', 'country','year','journal','author'] > > form = SQLFORM.factory( > Field('k', label='Type in up to 5 keywords separated by ' > '(spaces).',requires=IS_NOT_EMPTY()), > Field('how', label='Search all or any of the > keywords',default='all', requires = IS_IN_SET(['any','all'])), > Field('refine', label='Refine by search in another > field',default=None, requires= IS_IN_SET(veld)), > Field('value', label='What to search for',default=None)) > > And the following function to build the keyword query (thanks to help > from this Massimo): > > h = request.vars.how > if h == 'any': > query = reduce(lambda > a,b:a|b,[db.sarua.keywords.lower().like('%'+ k > +'%')|db.sarua.title.lower().like('%'+k > +'%')|db.sarua.journal.lower().like('%'+k +'%') for k in > request.vars.k.lower().split()]) > else: > query = reduce(lambda > a,b:a&b,[db.sarua.keywords.lower().like('%'+ k > +'%')|db.sarua.title.lower().like('%'+k > +'%')|db.sarua.journal.lower().like('%'+k +'%') for k in > request.vars.k.lower().split()]) > > I want to add the rest of the form to the query. I have tried: > > r = request.vars.refine > > if not r : > query = query > else: > query = query + '&' + > db.sarua[request.vars.refine.lower()].like('%'+request.vars.value.lower > + '%') > > but this is not working because the query is not of the type str: > > query = query + '&' + > db.sarua[request.vars.refine.lower()].like('%'+request.vars.value.lower > + '%') > TypeError: unsupported operand type(s) for +: 'Query' and 'str' > > How do I extend query built by lambda? > > Regards > Johann > -- > "Every good gift and every perfect gift is from above, > and cometh down from the Father of lights, with whom > is no variableness, neither shadow of turning." > James 1:17 -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.