On Wednesday, May 18, 2016 at 6:22:50 AM UTC-4, Adam Drzewiecki wrote:
>
> Hi everybody,
>
> I have some problem with my search_widget.
> I would like to create search_widget with less fields, but i get 
> error: <type 'exceptions.AttributeError'> 'str' object has no attribute 
> 'get'
>
> My code:
> search_options = {'string': ['=', '!=', '<', '>', '<=', '>=', 'starts 
> with', 'contains', 'in', 'not in']}
>  fields = [db.clients.host_name, db.clients.current_project]
>  update_grid = SQLFORM.grid(db.clients, (db.clients.host_name, db.clients.
> current_project),searchable=True, search_widget=lambda fields, 
> search_options: SQLFORM.search_menu(fields, search_options)....
>

You are confusing search_widget and the search menu (the former is the form 
in which you enter and submit keywords, and the latter is a menu of search 
operators that can be used within the widget). The search_widget argument 
is a function that takes a fields argument and a url argument. So, what you 
are expecting as the search_options argument is just a URL. Also, note that 
the grid passes the arguments to the search_widget function, so it does 
nothing for you to define your own search_options dictionary without also 
somehow passing it to the search_menu method yourself.

Instead, you probably want something like this:

search_widget=lambda fields, url, search_options=search_options: CAT(FORM
(..., _action=url),
    SQLFORM.search_menu(fields, search_options))

Anthony

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to