form.vars.professor_inst_id. But it should also be in
request.vars.professor_inst_id.
On Thursday, May 12, 2016 at 8:17:43 PM UTC-4, Sandro Javiel wrote:
>
> 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.