I think you need to check the web2py errors that are being generated. That
should tell you what is going on.

Jim


On Mon, Jun 17, 2019, 5:04 PM Cristina Sig <krysthi...@gmail.com> wrote:

> I'm having the same datatables warning: ajax error so I guess it might be
> the referenced field that is causing the error because even the table is
> not being field with data.
>
> El lunes, 17 de junio de 2019, 18:55:02 (UTC-3), Jim S escribió:
>>
>> Are you getting an error on the referenced field (Nationality) or is it
>> just not returning the results you're expecting?
>>
>> -Jim
>>
>> On Monday, June 17, 2019 at 4:46:14 PM UTC-5, Cristina Sig wrote:
>>>
>>> thanks!
>>> I solved the integer field but it seems that the referenced fields are
>>> not working.
>>> I will try to see what is the issue with them
>>>
>>> El lunes, 17 de junio de 2019, 18:05:18 (UTC-3), Jim S escribió:
>>>>
>>>> I'm guessing it's the phone number field.  You can't use 'contains' on
>>>> a numeric field.  So, try this:
>>>>
>>>> if search_value and search_value != '' and search_value != 0:
>>>>     try:
>>>>         int_search_value = int(search_value)
>>>>         queries.append((db.Student.firstname.contains(search_value)) |
>>>>                        (db.Student.lastname.contains(search_value)) |
>>>>                        (db.Student.phone == int_search_value) |
>>>>                        (db.Nationality.descripcion.contains(
>>>> search_value))
>>>>
>>>>     except:
>>>>         queries.append((db.Student.firstname.contains(search_value)) |
>>>>                        (db.Student.lastname.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))
>>>>
>>>> Basically, if you can convert the search_value to an int, you want to
>>>> check the phone number against the int as well.  If you can't convert to an
>>>> int, then don't include phone number in the search.
>>>>
>>>> The datatables error is not very helpful.  What you want to look at is
>>>> the error that web2py is generating to confirm that it is the phone number
>>>> like I think it is.
>>>>
>>>> -Jim
>>>>
>>>> On Monday, June 17, 2019 at 3:44:27 PM UTC-5, Cristina Sig wrote:
>>>>>
>>>>> 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
>>>>> <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 a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/q-64a-Qzsqg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/web2py/fc8ef221-4178-42bf-80d5-5365bf0eea35%40googlegroups.com
> <https://groups.google.com/d/msgid/web2py/fc8ef221-4178-42bf-80d5-5365bf0eea35%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> 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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/CAERBpoBiHQbQX6MuKFH3MOdkeEetZcLnVYhjbzp%2BYX1SFJw%3Dyw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to