In fact form is processed and new classroom is created, however with insititution and professor equals None:
Em quinta-feira, 12 de maio de 2016 20:45:35 UTC-3, Sandro Javiel escreveu: > > HI Anthony, > > I have a function in controller group exposed using url group/new > > def new(): > if(session.auth is not None and session.auth.user.id is not None): > user_id = session.auth.user.id > professor_id = db(db.professor.id == user_id).select( > db.professor.id)[0]['id'] > professor_inst_id = db(db.professor.id == > professor_id).select(db.professor.institution)[0]['institution'] > form=FORM('Nome da turma:', INPUT(_name='name', > requires=IS_NOT_EMPTY()), > 'Disciplina:',INPUT(_name='subject', > requires=IS_NOT_EMPTY()), > T('Professor Id:') ,INPUT(_name='professor_id', > _id='professor_id', value=professor_id), > T('Institution Id') ,INPUT(_name='professor_inst_id', > _id='professor_inst_id', value=professor_inst_id), > INPUT(_type='submit')) > if form.accepts(request,session): > > > db.classroom.insert(institution=request.vars.professor_inst_id, > professor=request.vars.professor_id, subject=request.vars.subject, name= > request.vars.name) > response.flash = T('Nova turma criada') > > > > Em quinta-feira, 12 de maio de 2016 10:33:11 UTC-3, Anthony escreveu: >> >> How are you doing the insert? Is it via application code during an HTTP >> request, or in the shell or a script. If the latter, you need to call >> db.commit() to commit any changes to the database (this is done >> automatically in the context of HTTP requests). >> >> Anthony >> >> On Thursday, May 12, 2016 at 4:57:29 AM UTC-4, Sandro Javiel wrote: >>> >>> Hi all, >>> >>> My app has model as shown below. If I use appadmin interface I can >>> insert on tables which have some onstraints like classroom (fk: >>> professor.id and institution.id). However using form >>> >>> =FORM('Nome da turma:', INPUT(_name='name', requires=IS_NOT_EMPTY()), >>> 'Disciplina:',INPUT(_name='subject', >>> requires=IS_NOT_EMPTY()), >>> T('Professor Id:') ,INPUT(_name='professor_id', >>> _id='professor_id', value=professor_id), >>> T('Institution Id') ,INPUT(_name='professor_inst_id', >>> _id='professor_inst_id', value=professor_inst_id), >>> INPUT(_type='submit')) >>> >>> The line >>> db.classroom.insert(institution=request.vars.professor_inst_id, >>> professor=request.vars.professor_id, subject=request.vars.subject, name= >>> request.vars.name) >>> >>> produces no error but I have no effect in DB. I would like to understand >>> difference between appadmin inserts and the one I just described. Is there >>> some way to log every single sql execution? Any other suggestion or >>> complain about my code? >>> >>> Tkx in advance. >>> >>> >>> ===================================== >>> db.define_table('institution', >>> Field('image','blob'), >>> Field('country', default='Brasil'), >>> Field('name')) >>> >>> db.define_table('professor', >>> Field('username'), >>> Field('photo', 'upload'), >>> Field('email'), >>> Field('name'), >>> Field('institution',db.institution)) >>> >>> db.define_table('dog', >>> Field('name'), >>> Field('photo', 'upload'), >>> Field('description', 'text'), >>> Field('institution', db.institution), >>> Field('professor',db.professor)) >>> >>> db.define_table('config', >>> Field('name'), >>> Field('ssid'), >>> Field('password'), >>> Field('institution',db.institution )) >>> >>> >>> db.define_table('classroom', >>> Field('institution',db.institution), >>> Field('professor', db.professor), >>> Field('subject'), >>> Field('dog_list'), >>> Field('name')) >>> >>> >>> db.define_table('bodypoint', >>> Field('institution',db.institution), >>> Field('classroom', db.classroom), >>> Field('code', default='m'), >>> Field('delimiter_chars', default='<>'), >>> Field('description','text'), >>> Field('name')) >>> >>> db.define_table('actions', >>> Field('institution',db.institution), >>> Field('classroom',db.classroom), >>> Field('professor', db.professor), >>> Field('dog', db.dog), >>> Field('query_string'), >>> Field('is_active', 'boolean', default=True)) >>> >>> db.professor.institution.requires = IS_IN_DB(db,'institution.id', >>> '%(name)s') >>> db.dog.institution.requires = IS_IN_DB(db,'institution.id', '%(name)s') >>> db.dog.professor.requires = IS_IN_DB(db,'professor.id', '%(name)s') >>> db.config.institution.requires = IS_IN_DB(db,'institution.id', >>> '%(name)s') >>> db.classroom.institution.requires = IS_IN_DB(db,'institution.id >>> ','%(name)s') >>> db.classroom.professor.requires = IS_IN_DB(db,'professor.id','%(name)s') >>> db.bodypoint.institution.requires = IS_IN_DB(db,'institution.id >>> ','%(name)s') >>> db.bodypoint.classroom.requires = IS_IN_DB(db,'classroom.id','%(name)s') >>> db.actions.institution.requires = IS_IN_DB(db,'institution.id >>> ','%(name)s') >>> db.actions.professor.requires = IS_IN_DB(db,'professor.id','%(name)s') >>> db.actions.classroom.requires = IS_IN_DB(db,'classroom.id','%(name)s') >>> db.actions.dog.requires = IS_IN_DB(db,'dog.id','%(name)s') >>> >>> >>> -- 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/d/optout.