list:integer e manipulação do Formulário.

22 views
Skip to first unread message

Leonardo Porto

unread,
Sep 12, 2016, 10:10:32 PM9/12/16
to web2py-users-brazil
Galara boa noite!
Estou há um bom tempo nessa mesma aplicação, pois estava tendo que viajar a trabalho, quase não tive tempo pra me dedicar a ela.
Então voltando, novas dúvidas. rs
Seguinte, tenho um campo na tabela Perguntas do tipo list:integer, onde nele são salvos os IDs de Empresários.
Quando faço uma Pergunta pelo admin da app, tudo bem, insiro os IDs manualmente, através daquela lista onde permite clicar no botão de + e vão se abrindo novos campos e posso inserir novos ids.
Porém agora partindo pra formatação da interface queria saber como vou fazer isso de forma prática, pois o usuário não tem que por IDs manualmente. Pretendo fazer uma função que selecione somente os Empresários da Cidade escolhida, e a partir daí carregar uma lista de Empresários e nessa lista o Usuário pode selecionar um ou mais Empresários. Poderia ser um campo com CheckBox.
Mas como fazer isso? Vou ter que criar um formulário customizado?

Segue abaixo alguns trechos de códigos interessantes pra entender o sistema.

Ask = db.define_table('ask',
   
Field('title', 'string', label='Title'),
   
Field('description', 'string', label='Descripton'),
   
Field('category', 'reference category', label='Category'),
   
Field('businessman', 'list:integer', label='Businessman'),
    auth
.signature,
    format
='%(title)s'
)

#Seleciona possíveis empresários para qual o Usuário pode fazer uma pergunta.
bman_user_city
= db(db.businessman.city == auth.user.city).select()

Muito obrigado amigos!
Forte abraço!

Leonardo Porto

unread,
Sep 13, 2016, 12:06:10 AM9/13/16
to web2py-users-brazil
Galera, consegui resolver da seguinte forma.

Field('businessman', 'list:integer', label='businessman', requires=IS_IN_DB(db(db.businessman.city == auth.user.city),db.businessman.id,'%(name)s', multiple=True), widget=SQLFORM.widgets.checkboxes.widget),
Reply all
Reply to author
Forward
0 new messages