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 [email protected].
For more options, visit https://groups.google.com/d/optout.