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.

Reply via email to