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.