You can pass the format as the third argument to the validator:

IS_IN_DB(db(db.gang_users.gang == gang.id), db.gang_users.nickname, db.
gang_users._format)

Anthony

On Thursday, October 16, 2014 2:02:02 PM UTC-4, Álvaro José Iradier wrote:
>
> Hi, I have a field in table 'expenses' defined as:
> db.define_table('expenses',
>                 Field('gang', db.gangs, required=True, notnull=True),
>                 ...
>                 Field('payer', db.gang_users, label=T('Payer')),
>                 ...
>
> Table gang_users has a format like:
>
> db.define_table('gang_users',
>                 Field('gang', db.gangs, required=True, notnull=True),
>                 Field('auth_user', db.auth_user, required=True, 
> notnull=True),
>                 Field('nickname', 'string', required=False, notnull=False),
>                 format = lambda r: "%s (%s)" % (r.auth_user.email, 
> r.nickname) if r.nickname else r.auth_user.email
> )
>
> When the "payer" field is shown in a SQLFORM, it will display a dropdown 
> with the list of users from the table gang_users, formatted according to 
> the "auth.user.email (nickname)" rule defined in the format parameter of 
> gang_users table.
>
> However, I want to filter out this users, by doing in the controller:
>
> db.expenses.payer.requires = IS_IN_DB(db(db.gang_users.gang == gang.id), 
> db.gang_users.nickname)
>
> When the validator is set, only users from the given gang are displayed in 
> the dropdown, but I can display the nickname or id or any column from the 
> gang_users table. I would like to keep the "auth_users.email 
> (gang_users.nickname)" format as without the validator.
>
> Is it possible?
>
> Thanks very much.
>
> -- 
> (:=================================:)
>  Alvaro J. Iradier Muro - [email protected] 
>

-- 
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