On Sunday, October 18, 2015 at 5:28:14 PM UTC-7, 黄祥 wrote:
>
> something like this is not work either
> e.g.
> table= db.test
> search = request.vars.search
> field_objects = [f for f in table]
> if search:
> for field_object in field_objects:
> rows = db(field_object.contains(search)).select()
>
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
> 13.
> 14.
>
> Traceback (most recent call last):
>   File "C:\web2py\gluon\restricted.py", line 227, in restricted
>     exec ccode in environment
>   File "C:/web2py/applications/freelancer/controllers/service.py" 
> <https://127.0.0.1/admin/default/edit/freelancer/controllers/service.py>, 
> line 19, in <module>
>   File "C:\web2py\gluon\globals.py", line 412, in <lambda>
>     self._caller = lambda f: f()
>   File "C:/web2py/applications/freelancer/controllers/service.py" 
> <https://127.0.0.1/admin/default/edit/freelancer/controllers/service.py>, 
> line 13, in browse
>     return freelancer_default.show_0(table, link_page)
>   File "applications\freelancer\modules\freelancer_default.py", line 59, in 
> show_0
>     rows = current.db(field_object.contains(search)).select(limitby = limitby,
>   File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 1247, in contains
>     raise SyntaxError("contains used with incompatible field type")
> SyntaxError: contains used with incompatible field type
>
>
> any hints or suggestion to search all the fields in database table?
>


Isn't it the case that "contains()" is only for strings?  You have at least 
1 non-string field type (id).  It seems you would need to do an 
"isinstance()" on the field type.

/dps


 

-- 
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.

Reply via email to