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]'
)