I just figured out the problem is in
*request.vars.professor_inst_id*
and
*request.vars.professor_id*How should I access form field names
professor_inst_id for instance?
Tkx
Em quinta-feira, 12 de maio de 2016 21:00:09 UTC-3, Sandro Javiel escreveu:
>
> 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.