Hello Jim, I tried the code and it shows me an error
*DataTables warning: table id=tableStudent - Ajax error. For more information about this error, please see http://datatables.net/tn/7* I think it is not recognising the numeric field or the referenced ones El lunes, 17 de junio de 2019, 11:30:45 (UTC-3), Jim S escribió: > > Cristina > > I'd look at adding a 'left' argument on my query.select(). > > if search_value and search_value != '' and search_value != 0: > queries.append((db.Student.firstname.contains(search_value)) | > (db.Student.lastname.contains(search_value)) | > (db.Student.phone.contains(search_value)) | > (db.Nationality.descripcion.contains(search_value)) > > query = reduce(lambda a, b: (a & b), queries) > query.select(left=db.Nationality.on(db.Student.nationality == db. > Nationality.id)) > > The above should give you the rows where the search text matches firstname > or lastname or phone or nationality description. You may want to change > that to 'and' instead of 'or' depending on your requirements. > > Make sense? > > -Jim > > > > On Sunday, June 16, 2019 at 8:36:09 PM UTC-5, Cristina Sig wrote: >> >> Hello, >> >> I'm a newbie on python language so I'm struggling to do some queries. >> I have a table Student which I use to fill a table on view, above that >> table, I have a search box, where I would like to provide the option to >> search in multiple columns (phone, last name, first name, or nationality). >> I don't know how exactly do a dynamic query in this case because I have >> some fields which are references from other tables. >> >> This is my Db >> db.define_table('Nationality', >> Field('descripcion', 'string'), >> ) >> >> db.define_table('Grade', >> Field('level', 'string'), >> ) >> >> db.define_table('Student', >> Field('lastname', 'string'), >> Field('firstname', 'string'), >> Field('nationality','reference Nationality'), >> Field('phone', 'integer'), >> Field('email', 'string'), >> Field('gradelevel','reference Grade'), >> ) >> >> and this is my try so far >> queries = [(db.Student.id > 0)] >> if search_value and search_value != '' and search_value != 0: >> queries.append(db.Student(search_value)) >> query = reduce(lambda a,b:(a&b),queries) >> >> query.select() >> >> >> >> I found a generic way to do it but still don't know how to deal with >> references. >> Any suggestion/idea would be very appreciated :) >> >> queries=[]if arg1 == "xyz": queries.append(db.abc.id > 0)if arg2 == "xyz": >> queries.append(db.def.id > 0)query = reduce(lambda >> a,b:(a&b),queries)query.select() >> >> >> >> >> -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/8a5444bd-3b22-4e14-959b-263a841e143d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

