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