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




Reply via email to