MarceloPinto350 / bibpub

Repositório do projeto de Biblioteca Pública
GNU General Public License v3.0
0 stars 0 forks source link

TU3-Validar CPF pessoa #57

Closed MarceloPinto350 closed 9 months ago

MarceloPinto350 commented 9 months ago

modificada a classe Pessoa no models.py

from django.core.validators import RegexValidator

def cpf_valido(self):
        """Valida o CPF da pessoa"""
        regex = r"^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$"
        validator = RegexValidator(regex) 
        return validator.validate(self.cpf) and self.num_cpf_valido()

def num_cpf_valido(self):
        """ Valida o número do CPF.
            Args:
                cpf: O número do CPF a ser validado.
            Returns:
                Retorna `True` se o número do CPF for válido, `False` caso contrário.
        """
        cpf = self.cpf.replace('.', '').replace('-', '')
        cpf_list = list(cpf)
        multiplicadores = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
        somatorio = 0
        for index, digito in enumerate(cpf_list):
            somatorio += int(digito) * multiplicadores[index]
        resto_divisao = somatorio % 11
        return cpf_list[9] == str(resto_divisao)