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'),
)
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()
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()
Hi Cristina,
Can you show us your view code as well?
Assuming you are trying to use datatables instead of web2py Grid or Smartgrid (which gives you ability to build dynamic queries), you will probably need to loop through all the fields in the table (server side) and build your query based on the value entered in the serach box.
Referenced fields will generally be displayed as the id of the referencing field depending on how you pass the information back to your view (i.e rendered or not) so you will only be able to search on the value in the view.
Alternatively you can look at the individual field.type (which will tell you the type of field you are dealing with) and treat each field type accordingly.
Hope this helps
John
--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/54dc8ca8-bebe-4604-8e4e-a89c254ed944%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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))
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))
--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/fc8ef221-4178-42bf-80d5-5365bf0eea35%40googlegroups.com.