Dear all,
I am trying to formulate a query to get ALL the people that know a language
AND leave in a specific city.
As I am not an expert I thought that was a good idea to have two tables as
following:
auth.settings.extra_fields['auth_user']= [
Field('city',requires=IS_IN_SET(('UK - London','IT - Milano','USA - New
York')) )]
db.define_table('userLanguage',
Field('idUser','reference auth_user', unique=True),
Field('French','boolean',default = False),
Field('Italian','boolean',default = False),
Field('Chinese','boolean',default = False),
Field('Indian','boolean',default = False))
in term of controller search function I decided to get the information from
the URL (that in my idea will be generate from a javascript function
depending of what the user select on the page):
def search():
lstLanguages = ['French', 'Italian', 'Chinese', 'Indian']
lstCity = ['UK - London','IT - Milano','USA - New York']
language = lstLanguages[int(request.vars.n)]
userCity = lstCity[int(request.vars.c)]
q1 = eval('db.ChefStyleTable.'+ language )== True
q2 = db.auth_user.city == userCity
""" QUERY: give me the list of users that know that language and live
in that city"""
return dict(form = chefResults)
As written above I tried different way to do that (without succed):
results = db(q1 & q2).select() """ gives me, as expected the sum of the two
query results"""
-------------------------------
results2 = db(q1).select() '''this return those who speak the selected
language'''
searchresults = [row for row in results2 if results2.idUser_city ==
userCity] '''this make web2py to crash! I have to kill the process...why?'''
I hope to not have bother you too much, I would like to learn and
understand... in particular:
1) which is the best way of doing this kind of query?
2) is there a better way of structuring the data (db tables)
3).... why it crashes?!
4) what would be the best way to pass the search criteria to the function?
Thanks for any answer and I hope it might be useful for other people as
well.
Regards,
Riccardo
--
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].
For more options, visit https://groups.google.com/d/optout.