Novo botao ADICIONAR nao quer salvar - sqlformgrid

27 views
Skip to first unread message

Jose Carlos Vicente Pereira

unread,
May 28, 2015, 10:08:54 PM5/28/15
to web2py-us...@googlegroups.com
Ola, tenho uma tabela SQLFORM.GRID, dai desabilitei o botao ADD ( create=False, ), dai criei um novo botao na view da grid

{{=A(I(_class="icon-user icon-white"),T('Novo Cadastro'),_class="btn btn-primary",_href=URL("geral","new_orgao"))}}


criei o controller (new_orgao)...

def new_orgao():
    response.view = 'geral/orgao.html'
    form = SQLFORM(db.a_cadorgao,  formstyle="divs")
    return dict(form=form.process())


chamo um view, ORGAO.HTML... é a mesma q eu chamo pra editar... nela tem um botao salvar

<button class='btn-lg btn-primary' type='submit'><strong>Salvar Dados</strong></button>


eu clico no novo botao  NOVO CADASTRO, abre a view ORGAO.HTML com os campos em branco, eu digito os dados, clico em salvar.. os dados vao pra URL... mas nao salvam no banco de dados... percebi que mesmo se nao digitar nada e clicar em salvar, a URL é carregada com os campos vazio...

podem me dizer onde to errando, nessa criacao do botao novo



Vinicius Assef

unread,
May 28, 2015, 11:25:55 PM5/28/15
to web2py-us...@googlegroups.com

> On 28 May 2015, at 23:08, Jose Carlos Vicente Pereira <carly...@hotmail.com> wrote:
>
> ...
> podem me dizer onde to errando, nessa criacao do botao novo

Jose, acho que a criação do botão está certa.

Mas provavelmente alguns outros pontos podem estar errados (ou não tão certos como poderiam). Sem ver a view, fica difícil tentar adivinhar.

Um desses pontos, que é possível ver com o código que você mostrou, é que você não está seguindo o pattern POST/REDIRECT/GET [1][2]. Isso não impediria seus dados de serem gravados, mas é o padrão para tratamento de formulários em qualquer aplicação web, independente de linguagem ou framework.

O outro, é que você está usando uma forma diferente do padrão para validar seu formulário. Sugiro seguir um exemplo do manual [3][4].

Para você entender melhor, seria bom estudar mais a fundo as seções sobre FORM [5], SQLFORM [6] e Custom Forms [7].

Aliás, o capítulo inteiro sobre Forms and Validators [8] é bem esclarecedor.

Acredite, todos que sabem trabalhar com formulário em Web2py estudaram esse capítulo várias vezes. ;-)

Bons estudos.

[1] https://en.wikipedia.org/wiki/Post/Redirect/Get
[2] http://web2py.com/books/default/chapter/29/07/forms-and-validators#Forms-and-redirection
[3] http://web2py.com/books/default/chapter/29/07/forms-and-validators#The-process-and-validate-methods
[4] http://web2py.com/books/default/chapter/29/07/forms-and-validators#The-process-method
[5] http://web2py.com/books/default/chapter/29/07/forms-and-validators#FORM
[6] http://web2py.com/books/default/chapter/29/07/forms-and-validators#SQLFORM
[7] http://web2py.com/books/default/chapter/29/07/forms-and-validators#Custom-forms
[8] http://web2py.com/books/default/chapter/29/07/forms-and-validators


Vinicius.


>
>
>
>
> --
> Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
> Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
> 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.
> Para mais opções, acesse https://groups.google.com/d/optout.


Jose Carlos Vicente Pereira

unread,
May 29, 2015, 6:46:28 AM5/29/15
to web2py-us...@googlegroups.com
Ola, bom dia Vinicius... 

Muito obrigado pelas dicas, vou acessar e estudar os links... creio que é falha minha mesmo, pois é o primeiro SALVAR que estou fazendo, fora do botao ADD da view/grid, então +- ja era esperado efeitos colaterais, mas  vou estudar hj e tentar resolver... so para complementar, vou mostrar o codigo da view ORGAO.HTML...

link:

Jose Carlos Vicente Pereira

unread,
May 29, 2015, 7:14:13 AM5/29/15
to web2py-us...@googlegroups.com
percebi, olhando os links e uns exemplos... q minha linha q cria o FORM ta incompleta.. teria q ser algo assim

 <form class='form-horizontal' action="" enctype="multipart/form-data" method="post">

mas adicionei o METHOD =post... mas nao resolveu ainda



Em quinta-feira, 28 de maio de 2015 23:08:54 UTC-3, Jose Carlos Vicente Pereira escreveu:

Glauco Junior

unread,
May 29, 2015, 8:11:57 AM5/29/15
to web2py-us...@googlegroups.com
José Carlos,
Precisa colocar a action também, tipo:

<form class='form-horizontal' action="new_orgao" enctype="multipart/form-data" method="post">

Assim quando o form for enviado ele vai chegar na sua função new_orgao por exemplo.

Abraço!

Vinicius Assef

unread,
May 29, 2015, 10:47:32 AM5/29/15
to web2py-us...@googlegroups.com
Seguem observações inline.


> On 29 May 2015, at 09:11, Glauco Junior <glaucoj...@gmail.com> wrote:
>
> José Carlos,
> Precisa colocar a action também, tipo:
>
> <form class='form-horizontal' action="new_orgao" enctype="multipart/form-data" method="post”>

Não precisa do atributo `action`, não. Por padrão, o browser envia o formulário para a mesma URL que o forneceu, independente de linguagem ou framework.

Aliás, essa tag `<form>` que você incluiu na mão está sobrando. O `{{form.custom.begin}}` já inclui isso. E o `{{form.custom.end}}` inclui o `</form>` também. Veja no HTML gerado em seu navegador.


Vinicius.

Matheus Suffi

unread,
May 29, 2015, 1:40:03 PM5/29/15
to web2py-us...@googlegroups.com
Cara de um f12 no seu navegador e veja algumas coisas:
1-  se o Botão Submit está dentro do form, vc pode ter colocado de fora ja que vc fez na mão.
2- se o form possui uma "action" ou seja uma ação para qual ele enviara os dados, ainda caso tenha a action va no controller e veja se vc nao esta esquecendo de passar algum parametro ou se tem algum validator no controller que nao deixa o botao chamar a função

Em quinta-feira, 28 de maio de 2015 23:08:54 UTC-3, Jose Carlos Vicente Pereira escreveu:

Jose Carlos Vicente Pereira

unread,
May 29, 2015, 1:57:42 PM5/29/15
to web2py-us...@googlegroups.com
Ola turma, resolvido o problema, fiz uns ajustes no controller e na view, faltava uns detalhes mesmo... agora ta funcionando

mas valeu pelas dicas, links.. foi atraves deles q chegamos ate a solucao... muito obrigado



Em quinta-feira, 28 de maio de 2015 23:08:54 UTC-3, Jose Carlos Vicente Pereira escreveu:
Reply all
Reply to author
Forward
0 new messages