I would to do :

def read():

    id = request.args(0,cast=int,default=None)

    if id is None: 

        location = db(db.location.id == request.args(0)).select().first()

    else:

        default_sort_order = [db.location[x] for x in 'city street_name 
street_number building name'.split()]

        locations = db().select(orderby = default_sort_order)

    return locals()


On Wednesday, 30 January 2013 15:26:13 UTC-6, Gian Luca Decurtins wrote:
>
> Hi all
>
> What do you think about the following code example? Is there a more 
> elegant way to be able to call a function with and without arguments?
> How can I select the fields which shall be returned? I did try it in the 
> .select(db.location.id, db.location.name) part, but the JSON output 
> always contained all the fields.
>
> Cheers
> -Luca.
>
> def read():
>
>     if (request.args(0) == None):
>
>         default_sort_order = [db.location.country, db.location.city, 
> db.location.street_name, db.location.street_number, db.location.building, 
> db.location.name]
>
>         locations = db().select(orderby = default_sort_order)
>
>         return dict(locations = locations)
>
>     else:
>
>         location = db(db.location.id == request.args(0)).select().first()
>
>         return dict(location = location)
>

-- 

--- 
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/groups/opt_out.


Reply via email to