--- Em zope-pt@yahoogrupos.com.br, "Luciano Ramalho" <[EMAIL PROTECTED]>
escreveu
>
> 2008/6/3 illidam <[EMAIL PROTECTED]>:
> > Meu primeiro post aqui, tipo dei uma olhada não vi ninguem com esse
> > problema aqui no grupo então vai ai o problema pra quem pduer me
ajudar.
> > Eu criei um formulario no ploneFormGen certinho e tudo mais...criei
> > zSqlMethod q insere os dados do formulario na banco e tb criei um
> > script que tb esta funcionando corretamente inserindo no banco..o
> > problema é que quando clico em enviar no formulario, aparece o
> > seguinte erro...
> >
> > TypeError: pegar_do_formulario() takes exactly 4 arguments (0 given)
> > (Also, the following error occurred while attempting to render the
> > standard error message, please see the event log for full details:
> > name 'plone_context_state' is not defined)
> >
> > tipo eu entendi +- o erro, fala q o pegar formulario tem 4 parametros
> > e ele nao esta recendo nenhum ou 0, e ai oq faço!?
> > vo postar o meu pegar pegar parametro pra casa tenha algo
> > errado...alguem me falar...
> > segue o pegar_formulario:
> >
> 
> Eu nunca usei o PloneFormGen, mas evidentemente o problema está em
> como você está chamando o script. Se fosse um formulário normal,
> bastaria colocar a URL do script no actio do form, assim: <FORM
> ACTION="pegar_do_formulario">
> 
> > o parameters list dele é:
> > cliente,checador,numerodaproposta,valordaproposta
> 
> OK, esta parte está certa. Com esta lista de parâmetros, o Zope busca
> automaticamente os dados no request, não precisa fazer manualmente
> como você faz.
> 
> >
> > e depois vem o codigo:
> >
> 
> Vou comentar trecho por trecho.
> 
> O trecho abaixo é absolutamente desnecessário, porque como eu disse o
> Zope busca os parâmetros do script no request automaticamente.
> 
> > # Pega as variáveis do Ambiente
> > ################################################
> > request = container.REQUEST
> > RESPONSE =  request.RESPONSE
> >
> > ################################################
> > # Recebe os valores da Pagina
> > ################################################
> > cliente = request.get('cliente')
> > checador = request.get('checador')
> > numerodaproposta = request.get('numerodaproposta')
> > valordaproposta = request.get('valordaproposta')
> 
> Bastaria o trecho abaixo:
> 
> >
> > ################################################
> > # Insere as informações no banco
> > ################################################
> >
> > context.insereir_banco(cliente=cliente,checador=checador,
> > numero_da_proposta=numerodaproposta,
> > valor_da_proposta=valordaproposta)
> >
> > return "Adicionado com sucesso!"
> 
> Normalmente você não vai querer retornar uma string, e sim uma página.
> Um jeito de fazer isso é assim:
> 
> return context.pagina_de_resposta()
> 
> Onde pagina_de_resposta é o nome de um template.
> 
> Infelizmente eu nao conheco o PloneFormGen então não posso ser mais
> específico, mas tudo o que eu disse aí em cima funciona para
> formulários normais no Zope.
> 
> [ ]s
> Luciano
>

Aew Luciano valeu pelas dicas consegui resolver.
Eu mantive os request, e apaguei os parameters list dessa maneira
funcionou.

Agora vem a segunda parte que não consegui fazer por ter pouco
conhecimento.
Se por acaso eu quisesse pegar o nome do usuario logado e salva-lo no
banco, como faço isso?
Pois os exemplos que vi foram feitos com dtml-call e tals... no meu
caso não consegui entender onde eu faria a obteção do nome do do
usuario se seria no ZsqlMethod ou no script python ou em nehum deles e
sim no formulario!?

att. 
Guilherme


Responder a