request.vars[key] are strings.

a query is an instance of gluon.dal.Query.

You cannot serialize and deserialize a query without creating major
security issues. The best you can do is break the query into
(fieldname, operator, value) and do what plugin_wiki does in
controllers/plugin_wiki.py/jqgrid

On Jan 18, 2:27 am, Johann Spies <[email protected]> wrote:
> I am trying to build a generic 'list_records' function to handle pagination
> and to avoid doing it all over again for different queries and tables.
>
> I am struggling to pass a proper query to the function eg.
>
> request.vars.query = db.artikel.id > 0
>
> ends up in the function as '(artikel.id > 0)'  and not '(db.artikel.id > 0)'
>
> which means that this code produces a malformed sql query (db(artikel.id
>
> >0)...):
>
>     if request.vars.table and request.vars.query:
>         table = request.vars.table
>         start = page * items_per_page
>         stop = (page+1) * items_per_page+1
>         limitby = (start,stop)
>         query = request.vars.query
>         flds = request.vars.flds
>         print request.vars
>         if request.vars.total_found:
>             total_found = int(request.vars.total_found)
>         else:
>             total_found = db(query).count()
>         rows = db(query).select(flds,limitby=limitby)
>
> Regards
> Johann
>
> --
>  May grace and peace be yours in abundance through the full knowledge of God
> and of Jesus our Lord!  His divine power has given us everything we need for
> life and godliness through the full knowledge of the one who called us by
> his own glory and excellence.
>                                                     2 Pet. 1:2b,3a

Reply via email to