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.

Reply via email to