Olá, eu tentei encontrar se alguém teve esse problema a função de validate não funciona mostrado na aula, eu estou usando o linux Ubuntu 22, instalei todas dependências pelo pip.
Olá, eu tentei encontrar se alguém teve esse problema a função de validate não funciona mostrado na aula, eu estou usando o linux Ubuntu 22, instalei todas dependências pelo pip.
Oii Agnaldo, tudo bem?
Pelo que eu percebi do código que você disponibilizou, a função validate se encontra dentro da sua Class Meta, quando deveria estar na mesma linha de endentação dela, e dentro da Class ClienteSerializer. O que você pode tentar fazer para resolver essa situação é tirar um espaço de endentação e tentar rodar o seu código novamente, como mostrado a seguir:
class ClienteSerializer(serializers.ModelSerializer):
class Meta:
model = Cliente
fields = '__all__'
def validate(self, data):
if not cpf_valido(data['cpf']):
raise serializers.ValidationError({'cpf':"O número do CPF é inválido!"})
if not nome_valido(data['nome']):
raise serializers.ValidationError({'nome':"Não inclua números neste campo!"})
if not rg_valido(data['rg']):
raise serializers.ValidationError({'rg':"O RG deve ter 9 dígitos!"})
if not celular_valido(data['celular']):
raise serializers.ValidationError({'celular':"O número de celular deve ter 11 dígitos!"})
return data
Desse modo, a sua função deve passar a funcionar :) Outro ponto que eu percebi é que todas as suas funções prints apresentam o mesmo texto de "O CPF deve ter 11 dígitos!" e para você conseguir verificar melhor essa validação, recomendo que altere para algo que combine com a validação informada, como mostrado no código anterior.
Caso ainda não resolva o problema, peço que me mande seu projeto via github ou drive para que eu possa tentar te auxiliar mais assertivamente nessa questão. E em caso de dúvidas, me coloco à disposição.
Grande abraço e bons estudos!