On Thursday, October 17, 2013 2:23:09 PM UTC-4, Nicolas Palacios wrote:
>
> Hi, I want to give a compound format to my table_b table :
>
> db.define_table('table_a',
> Field('name', length=20),
> Field('serial', 'integer'),
> Field('signed', 'date', required=True),
> format='%(serial)s')
>
> db.define_table('table_b',
> Field('list', length=20),
> Field('tab_a', db.table_a),
> format='%(list)s - %(tab_a)s')
>
> Using %(tab_a)s I want to get the table_a serial field, not id, how can I
> get it?
>
The "format" attribute can be a function that takes the row object and
returns whatever you want. In this case, you need to explicitly retrieve
the db.table_a record and get the "serial" field:
db.define_table('table_b',
Field('list', length=20),
Field('tab_a', db.table_a),
format=lambda row: '%s - %s' % (row.list, row.tab_a.serial))
Note, row.tab_a.serial is a recursive select -- alternatively, you could do
db.table_a(row.tab_a).serial. In either case, this will involve a query of
the table_a table.
Anthony
--
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/groups/opt_out.