I do not know. Anyway, you are using 2.0.9. Can you upgrade to 2.2.1? On Thursday, 1 November 2012 12:07:41 UTC-5, apps in tables wrote: > > Hi, > > I did small changes to the example in the book (ajax search), > > @auth.requires_login() > def searchtalab(): > "an ajax wiki search page" > return dict(form=FORM(INPUT(_id='keyword',_name='keyword', > _onkeyup="ajax('callbacktalab', ['keyword'], 'target');")), > target_div=DIV(_id='target')) > > @auth.requires_login() > def callbacktalab(): > "an ajax callback that returns a <ul> of links to wiki pages" > query = db.talab.body.contains(request.vars.keyword) | > db.talab.title.contains(request.vars.keyword) > talabs = db(query).select( orderby=db.talab.on_date ) > links = [A(n.on_date,' ...... ',( str(n.title) ) ,' .... ',( > str(n.body) ) ,' .... ' , _href=URL('talab_r_search',args=n.id)) for n > in talabs] > return UL(*links) > > and it is working perfect. > > then I am trying to do the search, not only in one table , but to include > the details tables, So, I wrote it as : > > @auth.requires_login() > def searchtalabdetails(): > "an ajax wiki search page" > return dict(form=FORM(INPUT(_id='keyword',_name='keyword', > _onkeyup="ajax('searchtalabdetails', ['keyword'], > 'target');")), > target_div=DIV(_id='target')) > > @auth.requires_login() > def searchtalabdetails(): > "an ajax callback that returns a <ul> of links to wiki pages" > query = ( ((db.talab.id == db.talab_comment.talab_id) & (db.talab.id== > db.talab_document.id)) & > ( (db.talab.body.contains(request.vars.keyword)) | > (db.talab.title.contains(request.vars.keyword)) > |(db.talab_comment.body.contains(request.vars.keyword)) | > (db.talab_document.doc_title.contains(request.vars.keyword)) > ) > ) > talabs = db(query).select( orderby=db.talab.on_date ) > links = [A(n.talab.on_date,' ...... ',( str(n.talab.title) ) ,' > .... ',( str(n.talab.body) ) ,' .... ' , _href=URL('talab_r_search',args= > n.talab.id)) for n in talabs] > return UL(*links) > > > but it gave me the error: > > <type 'exceptions.TypeError'> CONTAINS() takes exactly 3 arguments (2 > given)VERSIONweb2py™(2, 0, 9, datetime.datetime(2012, 9, 13, 23, 51, 30), > 'stable')TRACEBACK > > 1. > 2. > 3. > 4. > 5. > 6. > 7. > 8. > 9. > 10. > 11. > 12. > 13. > 14. > 15. > 16. > 17. > 18. > 19. > 20. > 21. > > Traceback (most recent call last): > File "gluon/restricted.py", line 209, in restricted > File > "C:/Users/Toshiba/Desktop/web2py_209/web2py/applications/e_galya/controllers/default.py" > <http://127.0.0.1:8000/admin/default/edit/e_galya/controllers/default.py>, > line 1190, in <module> > File "gluon/globals.py", line 186, in <lambda> > File "gluon/tools.py", line 2809, in f > File > "C:/Users/Toshiba/Desktop/web2py_209/web2py/applications/e_galya/controllers/default.py" > <http://127.0.0.1:8000/admin/default/edit/e_galya/controllers/default.py>, > line 74, in searchtalabdetails > File "gluon/dal.py", line 8766, in select > File "gluon/dal.py", line 2094, in select > File "gluon/dal.py", line 1581, in select > File "gluon/dal.py", line 1444, in _select > File "gluon/dal.py", line 1277, in expand > File "gluon/dal.py", line 1160, in AND > File "gluon/dal.py", line 1277, in expand > File "gluon/dal.py", line 1163, in OR > File "gluon/dal.py", line 1277, in expand > File "gluon/dal.py", line 1163, in OR > File "gluon/dal.py", line 1277, in expand > File "gluon/dal.py", line 1163, in OR > File "gluon/dal.py", line 1279, in expand > TypeError: CONTAINS() takes exactly 3 arguments (2 given) > > > What did i do wrong? > > Regards, > > Ashraf >
--