Como ter formulários independentes no mesmo view?

23 views
Skip to first unread message

Érique Moreira

unread,
Nov 1, 2017, 2:20:22 PM11/1/17
to web2py-users-brazil
Boa tarde

Tenho 4 FORMS em um mesmo View, porém apenas o primeiro é válidado, quando passo as informações no seguinte, não valida, e dá erro no primeiro. Acredito que seja um erro "idiota" no meu script.


CONTROLLER:

def editar_plano():
    diagnosticos = ['Lesão Cariosa Classe I', 'Lesão Cariosa Classe II', 'Lesão Cariosa Classe III', 'Lesão Cariosa Classe IV', 'Lesão Cariosa Classe V', 'Pulpite Fechada', 'Pulpite Aberta', 'Pulpite com zonas de necrose', 'Necrosepulpar', 'Periodontite Apical Crônica', 'Periodontite Apical Aguda', 'Periodontite Apical com Presença de Fístula']
   
    procedimentos = ['n.d.n.', 'Dentística (M)', 'Dentística (MP)', 'Dentística (MV)', 'Dentística (MVP)', 'Dentística (DP)', 'Dentística (DV)', 'Dentística (DVP)', 'Dentística (V)', 'Dentística (P)', 'Dentística (O)','Dentística (MOD)', 'Dentística (OV)', 'Ausente', 'Faceta em R.C.', 'Endodontia', 'Exodontia']
   
    a = request.args(0)
       
    # DENTES QUADRANTE I
    dentes_I = SQLFORM.factory(
        Field ('dente1', 'string', requires = IS_IN_SET(['18', '17', '16', '15', '14', '13', '12', '11']), label = "Dente : "),
        Field ('diagnostico1', 'string', requires = IS_IN_SET(diagnosticos), label = 'Diagnóstico :'),
        Field ('procedimento1', 'string', requires = IS_IN_SET(procedimentos), default = 'n.d.n.', label = 'Procedimento : '),)
    if dentes_I.process().accepted:
        den1 = dentes_I.vars.dente1
        diag1 = dentes_I.vars.diagnostico1
        proced1 = dentes_I.vars.procedimento1
       
       
        db.dentes.insert(dente=den1, plano_tratamento= a, diagnostico = diag1, procedimento = proced1)
        if den1 == "18":
            db(db.plano_tratamento.id == a).update(dente18=proced1)
        elif den1 == "17":
            db(db.plano_tratamento.id == a).update(dente17=proced1)
        elif den1 == "16":
            db(db.plano_tratamento.id == a).update(dente16=proced1)
        elif den1 == "15":
            db(db.plano_tratamento.id == a).update(dente15=proced1)
        elif den1 == "14":
            db(db.plano_tratamento.id == a).update(dente14=proced1)
        elif den1 == "13":
            db(db.plano_tratamento.id == a).update(dente13=proced1)
        elif den1 == "12":
            db(db.plano_tratamento.id == a).update(dente12=proced1)
        elif den1 == "11":
            db(db.plano_tratamento.id == a).update(dente11=proced1)
           
   
    # DENTES QUADRANTE II
    dentes_II = SQLFORM.factory(
        Field ('dente2', 'string', requires = IS_IN_SET(['28', '27', '26', '25', '24', '23', '22', '21']), label = "Dente : "),
        Field ('diagnostico2', 'string', requires = IS_IN_SET(diagnosticos), label = 'Diagnóstico :'),
        Field ('procedimento2', 'string', requires = IS_IN_SET(procedimentos), default = 'n.d.n.', label = 'Procedimento : '),)
    if dentes_II.process().accepted:
        den = dentes_II.vars.dente2
        diag = dentes_II.vars.diagnostico2
        proced = dentes_II.vars.procedimento2
       
       
        db.dentes.insert(dente=den, plano_tratamento= a, diagnostico = diag, procedimento = proced)
        if den == "21":
            db(db.plano_tratamento.id == a).update(dente21=proced)
        elif den == "22":
            db(db.plano_tratamento.id == a).update(dente22=proced)
        elif den == "23":
            db(db.plano_tratamento.id == a).update(dente23=proced)
        elif den == "24":
            db(db.plano_tratamento.id == a).update(dente24=proced)
        elif den == "25":
            db(db.plano_tratamento.id == a).update(dente25=proced)
        elif den == "26":
            db(db.plano_tratamento.id == a).update(dente26=proced)
        elif den == "27":
            db(db.plano_tratamento.id == a).update(dente27=proced)
        elif den == "28":
            db(db.plano_tratamento.id == a).update(dente28=proced)

Na verdade são 4 FORMS, na View eles estão um cada Painel.
           

Carlos Costa

unread,
Nov 1, 2017, 3:56:01 PM11/1/17
to web2py-us...@googlegroups.com
No .factory passe o parametro formname com um nome diferente para cada form.
Passe o mesmo formname no método proccess


--
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.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

Érique Moreira

unread,
Nov 3, 2017, 5:38:35 AM11/3/17
to web2py-users-brazil

Obrigado Carlos

O típico erro de não ler toda a documenação

Abraço
           
Reply all
Reply to author
Forward
0 new messages