Many thanks for reply, unfortunately it didn't work in this instance... I
wonder if it is because the table is referencing itself?
Anyway I have found the following works but I wonder about the efficiency?
*db.account.transfer_acc.represent= lambda value:db.account[value].name*
On Thursday, 8 March 2012 11:27:14 UTC, Alan Etkin wrote:
>
> This should tell web2py to display the name instead of the id in
> references
>
> db.define_table('account', ..., format='%(name)s')
>
> You can find more info in the book's chapter 6.5, "Record
> representation"
>
> On 7 mar, 20:52, Edward Shave <[email protected]> wrote:
> > *I have the following table definition...*
> > *
> > *
> > *db.define_table('account',
> > *
> > * Field('name'),*
> > * Field('transfer_acc','reference account'),
> > *
> > * )*
> > *
> > db.account.name.requires = IS_NOT_EMPTY()
> > *
> > *
> > db.account.transfer_acc.requires = IS_IN_DB(db,db.account.id,'%(name)s')
>
> >
> > ...Note the table contains a self referencing field.
> >
> > *
> > *The reference field displays the referenced id in sqltable... What is
> best
> > way to replace id with name of account? *