COMBOBOX

40 views
Skip to first unread message

Rene dos Santos Nobre

unread,
Oct 21, 2016, 1:50:38 PM10/21/16
to web2py-users-brazil
Boa tarde!
Estou gerando um formulário de cadastro onde este referencia uma tabela dentro do banco de dados. O caso que estou seguindo o modelo que é apresentado no tutorial https://juliarizza.wordpress.com/2015/08/03/passo-a-passo-web2py-1o-passo/.

O caso é que para o meu formulário não é apresentado o combobox na no campo onde referencio esta outra tabela. São os dados de meu arquivo db.py

TipoGraduacao = db.define_table('tipoGraduacao',
                                Field('tipo', 'string', label = 'Tipo:')
                                )

Graduacao = db.define_table('graduacao',
                            Field('tipoGraduacao', 'reference tipoGraduacao', label='Tipo:'),
                            Field('cor', 'string', label='Cor:'),
                            Field('grau', 'string', label='Grau:'),                           
                            Field('tempMinimo', 'string', label='Tempo Mínimo:'),
                            )

No meu arquivo default.py, estou montando as páginas da seguinte forma:

def cadastroGraduacao():
    form = SQLFORM(Graduacao)
    if form.process().accepted:
        session.flash = 'Nova graduação cadastrada! %s' % form.vars.cor
        redirect(URL('cadastroGraduacao'))
    elif form.errors:
        response.flash = 'ERRO! Não foi possível cadastrar!'
    else:
        if not response.flash:
            response.flash = 'Preencha o formulário!'
    return dict(form=form)

Mas no meu formulário o campo de tipoGraduação fica como um campo de inserção de texto e não combobox.

Alguem pode me dizer onde estou errando?

Ari Sobel

unread,
Oct 21, 2016, 2:56:29 PM10/21/16
to web2py googlegroups
TipoGraduacao = db.define_table('tipoGraduacao',
                                Field('tipo', 'string', label = 'Tipo:')
                                )

Graduacao = db.define_table('graduacao',
                            Field('tipoGraduacao', 'reference tipoGraduacao', label='Tipo:'),
                            Field('cor', 'string', label='Cor:'),
                            Field('grau', 'string', label='Grau:'),                            
                            Field('tempMinimo', 'string', label='Tempo Mínimo:'),
                            )



um com maiúsculo outro com minúsculo... pode ser?


--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Amauri Rossetti Giovani

unread,
Oct 22, 2016, 11:14:57 AM10/22/16
to web2py-users-brazil
Seria isso?

TipoGraduacao = db.define_table('tipoGraduacao',
                                Field('tipo', 'string', label = 'Tipo:'),
                                format = '%(tipo)s'
                                )

Graduacao = db.define_table('graduacao',
                            Field('tipoGraduacao', 'reference tipoGraduacao', label='Tipo:',
                            widget=SQLFORM.widgets.checkboxes.widget, 
                            requires = IS_IN_DB(db, 'tipoGraduacao.id', '%(tipo)s', 
                            multiple=True)),
                            Field('cor', 'string', label='Cor:'),
                            Field('grau', 'string', label='Grau:'),                            
                            Field('tempMinimo', 'string', label='Tempo Mínimo:'),
                            )

Cadastrei 3 graduações para testar em tipoGraduacao.
Em tipoGraduacao coloquei o format com o campo tipo que é o que vai aparecer quando referenciar.
Em Graduacao coloquei o widget do tipo checkboxes com requires IS_IN_DB pra buscar na tabela tipoGraduacao os tipos cadastrados. O multiple=True permite selecionar mais de um item. Pode tirar ou colocar False.

Espero ter ajudado.

Amauri Rossetti Giovani

Rene dos Santos Nobre

unread,
Oct 22, 2016, 8:08:08 PM10/22/16
to web2py-users-brazil
Caro ari613, muito obrigado por sua ajuda, mas ja tentei e não foi..

Rene
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com

Ari Sobel

unread,
Oct 23, 2016, 12:25:25 PM10/23/16
to web2py-us...@googlegroups.com
Tenta assim:

Graduacao = db.define_table('graduacao',
                            Field('tipoGraduacao',  TipoGraduacao, label='Tipo:'),

                            Field('cor', 'string', label='Cor:'),

Enviado do meu iPhone
Para se desinscrever, envie email a: web2py-users-br...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages