Thanks Anthony... nice shortcut... and, any way to pass also the column as parameter ? (I don't need it right now... just wondering....)
On Sun, Apr 22, 2012 at 3:50 PM, Anthony <[email protected]> wrote: > How general does it need to be? Are you always checking a field named > "uuid" (but potentially in different tables)? Does the id being checked > always come from request.args(0)? > > Note, request.args(0) simply returns None if there are no request.args, so > as long as no records have a uuid == None, you don't have to bother > checking for request.args -- just use request.args(0), and you won't get > any records when there are no request.args. Also, if you add .first() after > .select(), you'll get the first row of the returned set, or None if no > records where returned -- so again, you don't have to test for the length > of the returned set. > > Maybe something like: > > def provider(table, id=request.args(0)): > return dict(provider=db(db[table].uuid == id).select().first()) > > myprovider = provider('auth_user') > > In that case, if there are no request.args, as long as no records have > uuid==None, the function will return None. Likewise, if there is a > request.args(0) but its value is not one of the uuid's in the table (i.e., > no records are returned), the function will return None. > > Anthony > > > On Sunday, April 22, 2012 8:33:13 AM UTC-4, sebastian wrote: >> >> >> Hi All, >> >> I'm using this function at least twice... and I'll use it again... how >> can I reuse it in some way ? for example passing the table and arg as >> function parameters... >> >> def provider(): >> theProvider = None >> if len((request.args))>=1: >> providers=db(db.auth_user.**uuid==request.args[0]).select(**) >> if len(providers) == 1: >> theProvider = providers[0] >> >> return dict(theProvider=theProvider) >> >> thanks >> -- >> Sebastian E. Ovide >> >> >> >> >> -- Sebastian E. Ovide

