Hello,

I am extending the registration data with some custom fields (pretty 
standard). This is my code:

from gluon.tools import Service
from gluon.tools import Auth

db      = DAL('sqlite://storage.sqlite')
auth    = Auth(db)
service = Service()

db.define_table(
    auth.settings.table_user_name,
    Field('first_name',           length=128, default=''),
    Field('last_name',            length=128, default=''),
    Field('email',                length=128, default='', unique=True),
    Field('address',              length=256, default=''),
    Field('postcode',             length=128, default=''),
    Field('city',                 length=128, default=''),
    Field('country',              length=128),
    Field('password', 'password', length=512, readable=False, 
label='Password'),
    Field('registration_key',     length=512, writable=False, 
readable=False, default=''),
    Field('reset_password_key',   length=512, writable=False, 
readable=False, default=''),
    Field('registration_id',      length=512, writable=False, 
readable=False, default=''),
    format='%(first_name)s %(last_name)s')

ISO_COUNTRY_CODES = ('DE', 'ES', 'IT', 'US')

# get the custom_auth_table
member = db[auth.settings.table_user_name]
member.first_name.requires = 
IS_NOT_EMPTY(error_message=auth.messages.is_empty)
member.last_name.requires  = 
IS_NOT_EMPTY(error_message=auth.messages.is_empty)
member.password.requires   = [IS_STRONG(min=5, special=0, upper=0), CRYPT()]
member.email.requires      = 
[IS_EMAIL(error_message=auth.messages.invalid_email), IS_NOT_IN_DB(db, 
'auth_user.email')]
member.country.requires    = IS_IN_SET(ISO_COUNTRY_CODES)

auth.define_tables()

The problem that I have is that in the registration form I am offered the 
choice among DE, ES, IT, US ...
I would like to convert those ISO country codes (I need that in my 
database) to human readable contry names.
Besides, this must be done according to the selected language (T operator?)

Is it possible to tell the form serializer to map one of the fields?
How can I specifiy the map function? Do you have an example to clarify the 
syntax?

Thanks,
Daniel

-- 



Reply via email to