Re: [zope-pt] Problema com os dados de um formulario

2008-06-04 Por tôpico Luciano Ramalho
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


[zope-pt] Problema com os dados de um formulario

2008-06-03 Por tôpico illidam
Olá moçada,

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:

o parameters list dele é:
cliente,checador,numerodaproposta,valordaproposta

e depois vem o codigo:

# 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')


# 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!

agradeço desde já...valeu...
abração