E aí, Renato! Tudo certo?
Vamos lá, dei uma olhada no teu código e percebi alguns pontos que podem estar dando problema.
Importando Módulos: Tá faltando importar o módulo re pra usar expressões regulares no teu código. Faltou colocar um import re lá no começo.
Método validadores: Tá ligado que a função validadores tá dentro do serializer, né? Normalmente, essa lógica costuma ficar no método validate do serializer. Então, o que você pode fazer é renomear esse método validadores para validate e tirar o self dele, porque ele vai receber os dados que você tá tentando validar.
Ficaria algo mais ou menos assim:
import re # Não esquece de importar isso!
from validate_docbr import CPF
def cpf_valido(numero_do_cpf):
cpf = CPF()
return cpf.validate(numero_do_cpf)
def celular_valido(celular):
padrao = '[0-9]{2} [0-9]{5}-[0-9]{4}'
resposta = re.findall(padrao, celular)
return resposta
class ClientesSerializer(serializers.ModelSerializer):
class Meta:
model = Clientes
fields = '__all__'
def validate(self, data): # Mudança aqui!
if not cpf_valido(data['cpf']):
raise serializers.ValidationError({'cpf': "CPF deve ter 11 digitos"})
if not celular_valido(data['celular']):
raise serializers.ValidationError({'celular': "Número ou formato de celular invalido"})
return data # Não esquece de retornar os dados validados!
Espero que isso ajude a resolver teu problema!