1
resposta

Validações no serializers não funcionam

Fato 1 - As validações realizadas no serializers.py não funcionam simplesmente a api salva a informação na base sem validar.

from rest_framework import serializers
from clientes.models import Cliente
from clientes.validators import *

class ClienteSerializer(serializers.ModelSerializer):
    class Meta:
        model = Cliente
        fields = '__all__'
    def validate(self, data):
        if not cpf_valido(data['cpf']):
            raise serializers.ValidationError({'cpf':"Número de 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 seguir este modelo: 11 91234-1234 (respeitando os espaços e traço)"})
        return data

Fato 2 - Import "rest_framework" could not be resolved (utilizando VS code) já revisei o path do variáveis de ambiente; Já chequei versões de python, django e rest_framework

obs; penso que o fato 1 ocorre em consequência do segundo, por alguma razão no momento da instalação do rest

1 resposta

Só funciona no Django REST framework. No Django Admim funciona normal.