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 <ed.sh...@eshavefindings.co.uk> 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? *

Reply via email to