Hello, When I submit the form no validation errors are shown and, after a few seconds, it just shows the form again, totally blank even if I had filled some fields. If I include @auth.requires_login() at index() it even gets back to login instead of the form. It seems as if the application is restarted when it tries to do the validation phase.
------------------- MODEL -------------------- db = DAL('sqlite://storage.sqlite') db.define_table( 'concelho', Field('codigo'), Field('nome'), format='%(nome)s') db.define_table( 'freguesia', Field('cod_concelho', requires= IS_IN_DB( db, db.concelho.codigo )), Field('codigo'), Field('nome'), format='%(nome)s' ) db.define_table( 'r', Field('user_id', 'integer'), Field('municipio', requires= IS_IN_DB( db, db.concelho.codigo, '%(nome)s')), Field('freguesia', requires= IS_IN_DB( db, db.freguesia.codigo, '%(nome)s')), Field('morada', requires= IS_NOT_EMPTY()), Field('cod_postal', requires= IS_MATCH('^\d{4}-\d{3}$')), Field('nif', requires= IS_MATCH('^\d{9}$')), Field('nat_juridica', requires= IS_IN_SET(['AUT','EMP','SOC'])), Field('ini_agricola', 'integer', requires= IS_EMPTY_OR( IS_INT_IN_RANGE( 1970, 2012))), Field('p_nome', requires= IS_NOT_EMPTY()), Field('nascimento', 'date', requires = IS_EMPTY_OR( IS_DATE( format='%Y-%m-%d'))), Field('escolaridade', requires = IS_IN_SET(['Básico','Secundário','Licenciatura','Mestrado'])) ) db.define_table( 'prod', Field('r_id', db.r ), Field('codigo', 'integer',label='Espécie', requires= IS_NOT_EMPTY()), Field('cmr_convenc', 'integer',label='Convencional', requires= IS_NOT_EMPTY()), Field('cmr_mpb', 'integer',label='M.P.Biológico',requires= IS_NOT_EMPTY()) ) ------------------ CONTROLLER ----------------- def index(): session.forget() session.r_id = 40 # Initial value -- will be replaced by form.vars.id form = SQLFORM( db.r) if form.process( next=URL('f_prod') ).accepted: session.r_id = form.vars.id response.flash = 'Success (R_ID=%s)' % session.r_id elif form.errors: response.flash = 'ERRORS in the form' else: response.flash = 'Form 1 of 2' return dict( form=form) def f_prod(): RID = session.r_id form = SQLFORM( db.prod) if form.process().accepted: response.flash = 'Success' elif form.errors: response.flash = 'ERRORS' else: response.flash = 'Form 2 of 2' return dict( form=form, RID=RID) --------------------------------- What's wrong? Thanks Luis --