Skip to main content
https://img.shields.io/github/actions/workflow/status/leogregianin/django-br-utils/test.yml.svg?branch=main&style=for-the-badge https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge https://img.shields.io/pypi/v/django-br-utils.svg?style=for-the-badge

Funcionalidades para informações e dados do Brasil.

Por exemplo, pode incluir no forms ou nos models campos de códigos postais (CEP), números de CPF, número de CNPJ e número de processo judicial para validação automática.

Também pode incluir campos de seleção de estados, cidades com código IBGE, países com código IBGE e bancos registrados no Brasil.

Este pacote é inspirado no django-localflavor com melhorias e adição de novas informações específicas para o Brasil.

Requisitos

Python >= 3.8
Django >= 4.2

Veja todos os testes rodando em todas as versões Python e Django: https://github.com/leogregianin/django-br-utils/actions

Instalação

pip install django-br-utils

Adicione br_utils em INSTALLED_APPS no settings.py:

INSTALLED_APPS = (
   ...,
   'br_utils',
   ...,
)

Como utilizar nos models

from django.db import models
from django_br_utils.models import (
    BRCPFField,
    BRCNPJField,
    BRPostalCodeField,
    BRStateField,
    BRCityField
    CountryField,
    BRBankField,
)

class Cadastro(models.Model):
   nome = models.CharField(max_length=100)
   email = models.EmailField()
   cpf = BRCPFField()
   cnpj = BRCNPJField()
   cep = BRPostalCodeField()
   uf = BRStateField()
   cidade = BRCityField()
   pais = CountryField()
   banco = BRBankField()

Como utilizar nos forms

from django import forms
from django_br_utils.forms import (
    BRCPFField,
    BRCNPJField,
    BRPostalCodeField,
    BRStateChoiceField,
    BRCityChoiceField
    CountryChoiceField,
    BRBankChoiceField,
)

class CadastroForm(forms.Form):
    nome = forms.CharField(max_length=100)
    email = forms.EmailField()
    cpf = BRCPFField()
    cnpj = BRCNPJField()
    cep = BRPostalCodeField()
    uf = BRStateChoiceField()
    cidade = BRCityChoiceField()
    pais = CountryChoiceField()
    banco = BRBankChoiceField()

Suporte para CNPJ Alfanumérico

Funções Utilitárias

O módulo também oferece funções utilitárias que podem ser importadas e utilizadas no seu projeto:

from django_br_utils.utils import get_states_of_brazil, get_countries_of_brazil, get_cities_of_brazil, get_banks_of_brazil

get_states_of_brazil

Esta função retorna informações sobre os estados brasileiros.

Parâmetros:
  • federative_unit (opcional): A sigla da Unidade Federativa. Quando não informado, retorna todos os estados.

  • capital_letter (opcional, padrão=False): Flag para retornar os nomes dos estados em letras maiúsculas.

Retorno:
  • Se federative_unit é informado e válido, retorna uma string com o nome do estado.

  • Se federative_unit é None, retorna um dicionário com todas as siglas e nomes dos estados.

  • Se capital_letter é True, retorna todos os valores em letras maiúsculas.

Exemplos de uso:

# Obter todos os estados
estados = get_states_of_brazil()
# {'AC': 'acre', 'AL': 'alagoas', 'AP': 'amapá', ...}

# Obter o nome de um estado específico
nome_estado = get_states_of_brazil('SP')
# 'são paulo'

# Obter todos os estados em letras maiúsculas
estados_maiusculos = get_states_of_brazil(capital_letter=True)
# {'AC': 'ACRE', 'AL': 'ALAGOAS', 'AP': 'AMAPÁ', ...}

get_countries_of_brazil

Esta função retorna informações sobre os países no padrão IBGE.

Parâmetros:
  • country_code (opcional): O código do país no padrão IBGE. Quando não informado, retorna todos os países.

  • capital_letter (opcional, padrão=False): Flag para retornar os nomes dos países em letras maiúsculas.

Retorno:
  • Se country_code é informado e válido, retorna uma string com o nome do país.

  • Se country_code é None, retorna um dicionário com todos os códigos e nomes dos países.

  • Se capital_letter é True, retorna os nomes em maiúsculas, caso contrário em minúsculas.

Exemplos de uso:

# Obter todos os países
paises = get_countries_of_brazil()
# {'0132': 'afeganistao', '0175': 'albania, republica da', ...}

# Obter o nome de um país específico por código
nome_pais = get_countries_of_brazil('1058')
# 'brasil'

# Obter todos os países em letras maiúsculas
paises_maiusculos = get_countries_of_brazil(capital_letter=True)
# {'0132': 'AFEGANISTAO', '0175': 'ALBANIA, REPUBLICA DA', ...}

get_cities_of_brazil

Esta função retorna informações sobre as cidades brasileiras no padrão IBGE.

Parâmetros:
  • city_code (opcional): O código da cidade no padrão IBGE. Quando não informado, retorna todas as cidades.

  • capital_letter (opcional, padrão=False): Flag para retornar os nomes das cidades em letras maiúsculas.

Retorno:
  • Se city_code é informado e válido, retorna uma string com o nome da cidade.

  • Se city_code é None, retorna um dicionário com todos os códigos e nomes das cidades.

  • Se capital_letter é True, retorna os nomes em maiúsculas, caso contrário em minúsculas.

Exemplos de uso:

# Obter todas as cidades
cidades = get_cities_of_brazil()
# {'1100015': 'alta floresta d oeste-ro', '1100023': 'ariquemes-ro', ...}

# Obter o nome de uma cidade específica por código
nome_cidade = get_cities_of_brazil('3550308')
# 'são paulo-sp'

# Obter todas as cidades em letras maiúsculas
cidades_maiusculas = get_cities_of_brazil(capital_letter=True)
# {'1100015': 'ALTA FLORESTA D OESTE-RO', '1100023': 'ARIQUEMES-RO', ...}

get_banks_of_brazil

Esta função retorna informações sobre os bancos registrados no Brasil.

Parâmetros:
  • bank_code (opcional): O código do banco. Quando não informado, retorna todos os bancos.

  • capital_letter (opcional, padrão=False): Flag para retornar os nomes dos bancos em letras maiúsculas.

Retorno:
  • Se bank_code é informado e válido, retorna uma string com o nome do banco.

  • Se bank_code é None, retorna um dicionário com todos os códigos e nomes dos bancos.

  • Se capital_letter é True, retorna os nomes em maiúsculas, caso contrário em minúsculas.

Exemplos de uso:

# Obter todos os bancos
bancos = get_banks_of_brazil()
# {'001': 'bco do brasil s.a.', '003': 'bco da amazonia s.a.', ...}

# Obter o nome de um banco específico por código
nome_banco = get_banks_of_brazil('341')
# 'itaú unibanco s.a.'

# Obter todos os bancos em letras maiúsculas
bancos_maiusculos = get_banks_of_brazil(capital_letter=True)
# {'001': 'BCO DO BRASIL S.A.', '003': 'BCO DA AMAZONIA S.A.', ...}

Contribuição

Contribuições são sempre bem vindas.

Sinta-se a vontade para abrir uma Issue para correções, dúvidas ou sugestões.

Release files for django-br-utils 0.4

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-br-utils 0.4
File Size Uploaded
django_br_utils-0.4.tar.gz 78.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-br-utils 0.4
File Interpreter ABI Platform
django_br_utils-0.4-py3-none-any.whl Python 3 none any Details

Total release size:149.3 kB

Release files / django_br_utils-0.4.tar.gz

Download URL django_br_utils-0.4.tar.gz
Size 78.4 kB
Tags Source
SHA-256 checksum
How to use checksums
af76c1ae8636ec0674fc586d02ad15518d103cfe1a904e4623dbcf9fe0628c94
BLAKE2b-256 checksum
How to use checksums
5f8699640da6a88526ad497c66d6fd0c18b691a71743015fecd717f568fa0842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2025.

Transparency log

Release files / django_br_utils-0.4-py3-none-any.whl

Download URL django_br_utils-0.4-py3-none-any.whl
Size 71.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e5996c69399bbe3447e788c369d7acce978fc03a259cee42fa40a537b60c6b4
BLAKE2b-256 checksum
How to use checksums
c17e798977bee3393e73269e62fca88167d01dc64d39976d21abbdf5d762228c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 16, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.4 This release

2 release files

0.3

2 release files

0.2

2 release files

0.1

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