Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Validação não funciona

As validações não funcionaram no meu código!

validator.py

def cpf_invalido(cpf):
    return len(cpf) != 11

def nome_invalido(nome):
    return not nome.isalpha()

def celular_invalido(celular):
    return len(celular) != 13

serializers.py

class EstudanteSerializer(serializers.ModelSerializer):
    class Meta:
        model = Estudante
        fields = ('id', 'nome', 'email', 'cpf', 'data_nascimento', 'celular')

    def validator(dados):
        if cpf_invalido(dados['cpf']):
            raise serializers.ValidationError({'cpf': 'O CPF deve ter 11 dígitos'})
        if nome_invalido(dados['nome']):
            raise serializers.ValidationError({'nome': 'O nome deve conter somente letras'})
        if celular_invalido(dados['celular']):
            raise serializers.ValidationError({'celular': 'O celulcar deve conter 13 dígitos'})
        return dados

A página não retornou nenhum erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Resolvido. Haviam dois erros no meu código. O método estava com o nome errado, e estava faltando o self dentro dos parâmetros.