Skip to main content

CPF Field para usar nos seus Models e ModelForms

Essa é uma implementação simples e enxuta de validadores para CPF de usuários.

Caso alguma coisa deixe de funcionar nas próximas versões do Django, não me comprometo em manter a biblioteca.

Instalação

pip install django-cpf

Adicione a aplicação cpf_field entre a suas apps e as apps do django.

INSTALLED_APPS = [
    # Django apps
    'cpf_field',
    # My Apps
]

Como utilizar:

No seu arquivo de models.py, importe o CPFField e insira no seu atributo de classe.

from django.db import models
from cpf_field.models import CPFField

class MyModel(models.Model):
    # ....
    cpf = CPFField('cpf')

O CPFField é derivado de models.CharField e vem inicializado, por padrão, com o max_length=14.

CPFs inválidos

CPFs que são considerados inválidos para o CPFField são aqueles que:

  1. Não possuem 11 números.
  2. O cálculo dos digitos verificadores não bate com os digitos informados.

Exemplos de CPFs inválidos

from .forms import ClientForm

form = ClientForm()
form.cpf = '12312312312' # inválido
form.cpf = '123.123.123-12' # inválido
form.cpf = 'ABC12312312' # inválido
form.cpf = 'ABC.123.123-12' # inválido

CPF válidos

Os CPFs válidos são aqueles que:

  1. Possuem 11 números.
  2. O cálculo dos digitos verificadores bate com os digitos informados.

Observações

O CPFField valida o CPF com ou sem máscara.

Então, os CPFs nos formatos XXXXXXXXXXX e XXX.XXX.XXX-XX são válidos.

Se você precisa que seu CPF seja salvo num formato específico (sem máscara, por exemplo) você tem que implementar o método clean_cpf no seu ModelForm, para formatar o valor enviado pelo usuário.

Release files for django-cpf 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-cpf 0.1.0
File Size Uploaded
django-cpf-0.1.0.tar.gz 4.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-cpf 0.1.0
File Interpreter ABI Platform
django_cpf-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 kB

Release files / django-cpf-0.1.0.tar.gz

Download URL django-cpf-0.1.0.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3c4519ddd2784ba4d1ec3ce14d16e9e12d36d9178fee2fa8c4b4be2fb4ed0f50
BLAKE2b-256 checksum
How to use checksums
61253b33ac6e8b344a80c03ca2ca037ceb1d08bdab91ba05028ee04d5f310eef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

Release files / django_cpf-0.1.0-py3-none-any.whl

Download URL django_cpf-0.1.0-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b973632d4a2d3f8d0d028ddb0e312e42c6de9827556904e922a2ac68af493ac
BLAKE2b-256 checksum
How to use checksums
63c5fc6b668cd9be357e878c794cb3134a1ec1f52715509a3deef1598da5a7fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page