Personal tools
You are here: Home > Tutoriais > Python/Zope/Plone > Controller Page Template - Parte III (Validator)
Document Actions

Controller Page Template - Parte III (Validator)

by Tânia Andrea last modified 2007-04-04 22:32
  • Se estiver usando no filesystem (com SVN por exemplo):
    1. Coloque a linha abaixo no seu metadata:
      [validators]
      validators = MINHA_PAGINA_DE_VALIDATOR
      
    2. E no arquivo MINHA_PAGINA_DE_VALIDATOR.vpy coloque o código abaixo:
      ## Controller Python Script "MINHA_PAGINA_DE_VALIDATOR"
      ##bind container=container
      ##bind context=context
      ##bind namespace=
      ##bind script=script
      ##bind state=state
      ##bind subpath=traverse_subpath
      ##parameters=
      ##title=
      ##
      
      request = context.REQUEST
      
      #verifica e "seta" erros
      nome = request.get('nome', None)
      if not nome:
          state.setError('nome','Por favor, Informe o nome.')
      
      idade = request.get('idade', None)
      if not idade:
          state.setError('idade','Por favor, Informe a idade.')
      
      
      #retorna erros
      if state.getErrors():
          state.setStatus('failure')
          return state.set(portal_status_message='Por Favor, corrigir os erros abaixo')
      return state
      
  • Se estiver usando direto na ZMI:
    1. Na aba "Validation" do seu Controller Page Template, coloque:
      Validators="MINHA_PAGINA_DE_VALIDATOR"
      
    2. E no seu arquivo Controller Validator, MINHA_PAGINA_DE_VALIDATOR, coloque o código abaixo:
      request = context.REQUEST
      
      #verifica e "seta" erros
      nome = request.get('nome', None)
      if not nome:
          state.setError('nome','Por favor, Informe o nome.')
      
      idade = request.get('idade', None)
      if not idade:
          state.setError('idade','Por favor, Informe a idade.')
      
      
      #retorna erros
      if state.getErrors():
          state.setStatus('failure')
          return state.set(portal_status_message='Por Favor, corrigir os erros abaixo')
      return state