Thanks for pointing that out. The example in the book is wrong and has been 
wrong for a while. :-(
I changed it into this:

def list_records():
    REGEX = re.compile('^(\w+)\.(\w+)\.(\w+)\=\=(\d+)$')
    match = REGEX.match(request.vars.query)
    if not match:
        redirect(URL('error'))
    table, field, id = match.group(2), match.group(3), match.group(4)
    records = db(db[table][field]==id).select()
    return dict(records=records)

On Friday, 14 September 2012 02:40:18 UTC-5, martzi wrote:
>
> Hi all : The below code snippet in web2py manual (p. 340), isn't resulting 
> to the expected output.
> def list_records():
>   table = request.args(0)   #returns db
>   query = request.vars.query #db.dog.owner == 1
>   records = db(query).select(db[table].ALL)  # db("...") requires 
> "owner==1" as parameter
>   return dict(records=records) 
>
> This seems to work:
>
> def list_records():
>   table = request.args(1)
>   query = request.vars.query.split('.')[-1]
>   records = db(query).select(db[table].ALL)
>   return dict(records=records)
>

-- 



Reply via email to