In a db.py:
db.define_table('vendedor', Field('auth_user_id', unique=True, default = auth.user.id), Field('direccion'), Field('provincia'), Field('coordenadas_gps'), Field('email', requires=IS_EMPTY_OR(IS_EMAIL()), default = auth.user.email), Field('telefono', 'integer'), Field('profesional', 'boolean', default=True)) In the admin app, raises an error when 'auth_user_id' values is in database, but not in controller, allowing repeated values in 'auth_user_id': default.py def registrovendedor(): form = SQLFORM(db.vendedor) if form.accepts(request.vars, session): response.flash = T('Registo válido') elif form.errors: response.flash = T('Atención: Errores en los datos del formulario') else: response.flash = T('Por favor, rellene el formulario de registro') return dict(form=form) what's wrong? It's necessary to validate in all levels (DAL, Form and Database)? If you validate at low level (I think in database level), why you must to validate at form level? Thanks