my guess is that currently do not change often so I would use cache the mapping:
currencies=cache.ram('currencies',lambda: dict([(row.code,row.name) for row in db(db.currency.id>0).select()]), 5000) db.cache_account.currency.represent=lambda id: currencies[id] Massimo On Jun 21, 3:57 pm, "Francois (Jersey)" <francois.ches...@googlemail.com> wrote: > I am trying to show the detail for a foreign key, but I really do not > know how to do it. > > My model is: > db.define_table('currency', > SQLField('code',length=3), > SQLField('name',length=100)) > db.currency.code.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB > (db,'currency.code')] > db.currency.name.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB > (db,'currency.name')] > > db.define_table('bank', > SQLField('name', length=150) > ) > > db.define_table('cash_account', > SQLField('name', length=150), > SQLField('bank', db.bank), > SQLField('currency', db.currency) > ) > > My controler is > def list_banks_and_accounts(): > banks=db().select(db.bank.ALL,orderby=db.bank.name) > return dict(banks=banks) > > My view is: > {{extend 'layout.html'}} > <h1>This is the test/list_banks.html template</h1> > <BR/> > <a href="/{{=request.application}}/bank/new_bank"><button > type="button">Create new bank</button></a> > <a href="/{{=request.application}}/bank/ > new_bank_account"><button type="button">New bank account</button></a> > </b> > <BR/> > {{for bank in banks:}} > <b><TR> <a href="/{{=request.application}}/bank/edit_bank/ > {{=bank.id}}">{{=bank.name}}</a> </TR> <br/> > {{cash_accounts = db(db.cash_account.bank==bank.id).select()}} > {{for cash_account in cash_accounts:}} > <TR> {{=cash_account.currency}} {{=cash_account.name}}</ > TR> <a href="/{{=request.application}}/bank/edit_bank_account/ > {{=cash_account.id}}"><button type="button">Edit</button></a><br/> > {{pass}} > <br/> > {{pass}} > > What I would like to see is the currency code ("USD", "GBP", > "JPY"....) instead of the foreign key id (an integer). > > How can I show the currency code, instead of the foreign key id > {{=cash_account.currency}}? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---