OLD syntax: represent=lambda id: settings.gender[id][1][:1])
new syntax represent=lambda id, row: settings.gender[id][1][:1]) Notice we did not break backward compatibilty because the new syntax is ONLY enforced in te new grid and smartgrid tools. On Oct 6, 8:53 pm, niknok <[email protected]> wrote: > When I try > > form=SQLFORM.grid(db.person) > > with a defined represent parameter, I get the following error: > > <lambda>() takes exactly 1 argument (2 given) > > The person table is defined as: > > db.define_table('person' > ,Field('birth_date', 'date', requires=IS_DATE()) > ,Field('last_name', notnull=True) > ,Field('given_name', notnull=True) > ,Field('middle_name', label="Mother's maiden name") > ,Field('gender', 'integer', > requires=IS_IN_SET(settings.gender, zero='pick one') > ,represent=lambda id: settings.gender[id][1][:1]) > ,Field('father', 'reference person' > ,requires=IS_EMPTY_OR(IS_IN_DB(db('person.gender'==1), > 'person.id' > ,zero=T('pick one')))) > ,Field('mother', 'reference person' > ,requires=IS_EMPTY_OR(IS_IN_DB(db('person.gender'==2), > 'person.id' > ,'%(last_name)s, %(given_name)s > [%(birth_date)s]' > ,zero=T('pick one')))) > ,auth.signature > ,format='%(last_name)s, %(given_name)s [%(birth_date)s]' > )

