The third argument to IS_IN_DB is the label argument, which can either be 
Python string formatting (to which the Row object will be passed) or a 
function that takes a Row object. You cannot use arbitrary Python code 
inside Python string formatting. Try:

IS_IN_DB(db, db.auth_user.id,
         lambda r: '%s %s' % (r.first_name.upper(), r.last_name.upper()))

Anthony


On Wednesday, February 25, 2015 at 4:19:29 AM UTC-5, Gael Princivalle wrote:
>
> Hello.
>
> In my db I have this discounts table:
> db.define_table('discounts',
>                 Field('user_id', 'reference auth_user'),
>                 Field('brand', 'reference brands', requires = IS_IN_DB(db, 
> db.brands.id, '%(name)s'),
>                       represent=lambda id, r: db.brands[id].name),
>                 Field('xcent', type='double'))
>
> I would like to display the name and first name of the auth_user uppercase.
> Something like that:
> Field('user_id', 'reference auth_user', requires = IS_IN_DB(db, 
> db.auth_user.id, '%(first_name.upper())s %(last_name.upper())s')),
> But I've got this error:
> 'Row' object has no attribute 'upper()'
>
> I've tried also like that, str(first_name).upper(), same error.
>
> Someone have a solution?
>
> Thanks, regards.
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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/d/optout.

Reply via email to