Thanks guys for the help.
I followed the approach as suggested by Massimo, so I did the following :
@auth.requires_login()
def search2():
form,results = dynamic_search(db.customer)
if form.process().accepted:
session.results = results
redirect(URL('results'))
return dict(form=form)
@auth.requires_login()
def results():
results = session.results
return dict(results=results)
Please note that the dynamic_search is returning grid and form, so I am
storing grid in the form.
But I am still facing problems, not sure what wrong steps I am doing. For
the first time, when I click on search, desired results are opened in
controller "results" (in a new page). But when I click on edit/view of grid
operation, some how the page gets redirected to "search" page and on
subsequent search it crashes with the same problem (can't pickle ..). My
question is when i click on edit operations on a grid, why it is
redirecting to search. Isn't it is supposed to open edit form there itself?
Thanks
Sarbjit
On Thursday, July 18, 2013 1:00:12 AM UTC+5:30, Dmitri Husti wrote:
>
> Hi,
> Is it possible to pass the request vars and call the function
> dynamic_search twice?
> redirect(URL("test",vars=request.vars))
>
>
>
> Am Mittwoch, 17. Juli 2013 18:46:07 UTC+2 schrieb Massimo Di Pierro:
>>
>> You can store the results in session then.
>>
>> session.rows = db(...).select()
>>
>> Passing to much data in request.vars can be a problem. For example nginx
>> limits the size of the query string.
>>
>>
>>
>>
>> On Wednesday, 17 July 2013 10:48:15 UTC-5, Dmitri Husti wrote:
>>>
>>> HI,
>>> you can pass results to the next page;
>>> redirect(URL("test",vars=dict(results=results))
>>>
>>> On the next page you can do
>>> return dict(results=request.vars["results"])
>>>
>>> Am Mittwoch, 17. Juli 2013 12:37:24 UTC+2 schrieb Sarbjit singh:
>>>>
>>>> Hi,
>>>>
>>>> I am trying to use "dynamic search form" from
>>>> http://www.web2pyslices.com/slice/show/1403/dynamic-search. Current
>>>> implementation shows both the form and results on the same page.
>>>>
>>>> I want to display the search results (using GRID) in a new page and
>>>> wants to use customized forms for edit/view operations associated with
>>>> GRID.
>>>>
>>>> As of now, I tried handling it in the view to not to show form contents
>>>> once the form is accessed but some how it is not working on subsequent
>>>> operations.
>>>>
>>>> So, I am thinking to pass query to a new controller and can hence
>>>> handle the custom forms there. But I am not able to do so.
>>>>
>>>> So here is what I tried :
>>>>
>>>> @auth.requires_login()
>>>> def search2():
>>>> form,query = dynamic_search(db.customer)
>>>> if form.process().accepted:
>>>> session.sqlquery = query
>>>> redirect(URL('results'))
>>>> return dict(form=form)
>>>>
>>>> @auth.requires_login()
>>>> def results():
>>>> query = session.sqlquery
>>>> print query
>>>> results =
>>>> SQLFORM.grid(query,searchable=False,create=False,csv=False)
>>>> results = None
>>>> return dict(results=results)
>>>>
>>>> With this code, first error that is encountered is in "session.sqlquery
>>>> = query" -> Can't pickle objects ....
>>>>
>>>> So I modified it as
>>>>
>>>> session.sqlquery = str(query)
>>>>
>>>> With this error appeared in "query = session.sqlquery" -> str object
>>>> has no attribute _db
>>>>
>>>> Can some one please suggest what is the right way to achieve this?
>>>>
>>>> -Sarbjit
>>>>
>>>>
--
---
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/groups/opt_out.