Jean, obrigada pela dica!

Fiz conforme seu exemplo mas não estou conseguindo fazer funcionar,
parece que não está registrando o validator, o erro é o seguinte:

2006-03-24 15:14:31 INFO Archetypes
Products/Archetypes/Field.py[261]:_validationLayer
WARNING: Disabling validation for centro_custo: isCentroCusto

O código do Validators.py é o seguinte:

from Products.validation.config import validation
from Products.validation.interfaces.IValidator import IValidator

listaValidadores = []

class ValidadorCentroCusto:
    """
    Validador para verificar se o Centro de Custo informado eh valido.
    """

    __implements__ = IValidator

    def __init__(self, name, title='', description=''):
        self.name = name
        self.title = title or name
        self.description = description

    def __call__(self, value, *args, **kw):
        centro_custo = value
        if len(centro_custo) != 11:
            return "%s precisa ter 11 digitos." % centro_custo
        elif not centro_custo.isdigit():
            return "%s precisa ter somente numeros." % centro_custo
        else:
            return 1

listaValidadores.append(ValidadorCentroCusto('isCentroCusto',
title='', description=''))

for validador in listaValidadores:
    # registra os validadores
    validation.register(validador)



--- Em zope-pt@yahoogrupos.com.br, Jean Rodrigo Ferri <[EMAIL PROTECTED]>
escreveu
>
> Elisandra Fidler wrote:
> > Olá pessoal!!
> > 
> > Estou modelando algumas classes no Poseidon e alguns campos precisam
> > ser validados, para isso tenho que contruir uns validadores
> > específicos, como por exemplo isCentroCustoValido para validar um
> > campo de Centro de Custo, fazendo uma pesquisa em um banco de dados
> > verificando se o centro de custo existe.
> > A minha dúvida é como colocar isso na tag validators e como construir
> > esse validador na classe.
> > É isso!
> > Um abraço a todos,
> 
> No tagged value do atributo crie um:
> 
> validators = isEmail, isCentroCusdoValido, isOutraCoisa
> 
> Como construir um validador tem vários exemplos no Archetypes, veja um 
> de CPF:
> 
> http://colab.interlegsi.gov.br/file/ILSAAL/trunk/Validators.py
> 
> -- 
> Jean Ferri
>






Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a