i think you shouldn't define the auth_user table, just keep it default, and 
if you want to add the new field of auth_user table, please use 
extra_fields. e.g.
# append fields : auth.signature
db._common_fields.append(auth.signature)

# custom auth user table add fields gender, address, zip_code, city, 
country, phone, branch, bank, account_no
auth.settings.extra_fields['auth_user'] = [ 
Field('gender', 
  label = T('Gender'), 
  notnull = True, 
  required = True, 
  requires = IS_IN_SET({T('Male'), T('Female') } ) ), 
Field('address', 'text', 
  label = T('Address'), 
  notnull = True, 
  represent = lambda address, field: A(address, _title=T("View Maps"), 
_target="_blank", 
_href="http://maps.google.com/maps?f=q&hl=en&geocode=&time=&date=&ttype=&q=%s,+%s,+%s";
 
% (field.address, field.city, field.country) ), 
  required = True, 
  requires = IS_NOT_EMPTY() ), 
Field('zip_code', 
  label = T('Zip Code'), 
  notnull = True, 
  required = True, 
  requires = IS_MATCH('^\d{5,5}$', error_message = 'not a Zip Code') ), 
Field('city', 
  label = T('City'), 
  notnull = True, 
  required = True, 
  requires = IS_NOT_EMPTY() ), 
Field('country', 
  label = T('Country'), 
  notnull = True, 
  required = True, 
  requires = IS_NOT_EMPTY() ), 
Field('phone', 'list:string', 
  label = T('Phone'), 
  notnull = True, 
  required = True), 
Field('branch', 'reference branch', 
  label = T('Branch'), 
  notnull = True, 
  required = True, 
  requires = IS_IN_DB(db, db.branch.id, '%(address)s') ), 
Field('bank', 'reference bank', 
  label = T('Bank'), 
  notnull = True, 
  represent = lambda bank, field: A(bank.bank, _title=T("eBanking"), 
_target="_blank", _href="%s" % bank.ebanking), 
  required = True, 
  requires = IS_IN_DB(db, db.bank.id, '%(bank)s') ), 
Field('account_no', 
  label = T('Account No'), 
  notnull = True, 
  required = True, 
  requires = IS_NOT_EMPTY() ), 
]

# create all tables needed by auth if not custom tables, add username field
auth.define_tables(username = True, signature = True)

""" custom_auth_table """
custom_auth_table = db[auth.settings.table_user_name]
# label
custom_auth_table.first_name.label = T('First Name')
custom_auth_table.last_name.label = T('Last Name')
custom_auth_table.email.label = T('Email')
# represent
custom_auth_table.email.represent = lambda email, field: \
A(email, _title=T("Send to %s") % email, _target="_blank", 
_href="mailto:%s"; % email)
# requires
custom_auth_table.phone.requires = IS_NOT_IN_DB(db, custom_auth_table.phone)

auth.settings.table_user = custom_auth_table

best regards,
stifan

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to