Seguindo sua filosofia de “beterias inclusas”, o Django vem acompanhado de peças sortidas de código que são úteis para paises e culturas particulares. Estes são chamados de “local flavor” (sabores locais) e ficam no pacote django.contrib.localflavor.
Dentro desse pacote, ó código de um país ou uma cultura específica fica dentro de sub-pacotes, chamados usando códigos de país ISO 3166.
A maioria dos add-ons localflavor estão localizados na forma de componentes derivando do framework forms – por exemplo, um USStateField que sabe como validar abreviações de estados do E.U.A., e um FISocialSecurityNumber que sabe como validar os números do seguro social Finlandês.
Para usar um desses componentes localizados, basta importar o sub-pacote relevante. Por exemplo, aqui tem como você consegue criar um formulário com um campo representando um número de telefone Francês:
from django import forms
from django.contrib.localflavor.fr.forms import FRPhoneNumberField
class MyForm(forms.Form):
my_french_phone_no = FRPhoneNumberField()
Os paises atualmente suportados pelo localflavor são
O pacote django.contrib.localflavor também inclui um sub-pacote genérico, contendo código útil que não são específicos para um único país ou cultura. Atualmente, é definido campos de entrada date e datetime baseados naqueles vindos de forms, mas com formatos que não seguem o padrão dos E.U.A. Aqui temos um exemplo de como usá-los:
from django import forms
from django.contrib.localflavor import generic
class MyForm(forms.Form):
my_date_field = generic.forms.DateField()
Nós adoraríamos adicionar mais deles no Django, então por favor crie um ticket com qualquer código que você gostaria de contribuir. Uma coisa que nós pedimos é que você, por favor, use objetos Unicode (u'mystring') para strings, ao invês de configurar a codificação no arquivo. Veja qualquer um dos flavors como exemplos.
Um campo de formulário que valida a entrada como um número clássico de quatro dígitos do código postal ou um CPA.
Um campo de formulário que valida a entrada como um número de Documento Nacional de Identidade (DNI).
Um campo de formulário que valida a entrada como um número de Código Único de Identificação Tributária (CUIT).
Um widget Select que usa uma lista de províncias argentinas e cidades autônomas como suas opções.
Um campo de formulário que valida a entrada como um código postal austráliano.
Um campo de formulário que valida a entrada como um número de telefone australiano. Números válidos possuem dez dígitos.
Um widget Select que usa uma lista de estados/territórios australianos como suas opções.
Um campo de formulário que valida sua entrada como um código zip austríaco.
Um widget Select que usa uma lista de estados austríacos como suas opções.
Um campo de formulário que valida sua entrada como um número de seguro social austríaco.
Um campo de formulário que valida a entrada como um número de telefone brasileiro, com o formato XX-XXXX-XXXX.
Um campo de formulário que valida a entrada como um C.E.P. brasileiro, com o formato XXXXX-XXX.
Um widget Select que usa uma lista de estados/territórios brasileiros como suas opções.
Um campo de formulário que valida a entrada como um número de telefone canadence, como o formato XXX-XXX-XXXX.
Um campo de formulário que valida a entrada como um código postal canadence, com o formato XXX XXX
Um campo de formulário que valida a entrada como um nome ou abreviação de província canadense.
Um campo de formulário que valida a entrada como um Número de Seguro Social Canadense (SIN). Um número válido deve ter o formato XXX-XXX-XXX e passar um Luhn mod-10 checksum.
Um widget Select que usa uma lista de províncias e territórios canadenses como suas opções.
Um campo de formulário que valida a entrada como um número de identificação nacional chilena ('Rol Unico Tributario' or RUT). O formato válido é XX.XXX.XXX-X.
Um widget Select que usa uma lista de regiões chilenas (Regiões) como suas opções.
Um campo de formulário que valida a entrada como um número de seguro social finlandês.
Um campo de formulário que valida a entrada como de um código zip finlandês. Códigos válidos consistem em cinco dígitos.
Um widget Select que usa uma lista de municípios finlandeses como suas opções.
Um campo de formulário que valida a entrada como um número local francês. O formato correto é 0X XX XX XX XX. 0X.XX.XX.XX.XX e 0XXXXXXXXX validam mas são corrigidos para 0X XX XX XX XX.
Um campo de formulário que valida a entrada como um código zip fancês. Códigos válidos consistem em cinco dígitos.
Um widget Select que usa uma lista de departamentos franceses como suas opções.
Um campo de formulário que valida a entrada como um número de carteira de identidade alemã (Personalausweis). Números válidos têm o formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X, com nenhum grupo com somente zeros.
Um campo de formulário que valida a entrada como um código zip alemão. Códigos válidos consistem em cinco dígitos.
Um widget Select que usa uma lista de estados alemãos como suas opções.
Um campo de formulário que valida a entrada como um número de telefone holandês.
Um campo de formulário que valida a entrada como um número de seguro social holandês (SoFI/BSN).
Um campo de formulário que valida a entrada como um código zip holandês.
Um widget Select que usa uma lista de províncias holandesas como uma lista de opções..
Um campo de formulário que valida a entrada como um número de identificação islandês (kennitala). O formato é XXXXXX-XXXX.
Um campo de formulário que valida a entrada como um número de telefone da Islândia (sete dígitos com um hífen opcional depois dos primeiros três dígitos).
Um widget Select que usa uma lista de códigos postais da Islândia como suas opções.
Um campo de formulário que valida a entrada como o nome ou abreviação de um estado/território indiano. A entrada é normalizada para o padrão de duas letras do veículo de registro de abreviação para o dado estado ou território.
Um campo de formulário que valida a entrada como um código zip indiano, com o formato XXXXXXX.
Um widget Select que usa uma lista de estados/territórios indianos como suas opções.
Um campo de formulário que valida a entrada como um número de seguro social italiano (condição fiscal).
Um campo de formulário que valida números italianos VAT (partida IVA).
Um campo de formulário que valida a entrada como um código zip italiano. Códigos válidos devem conter cinco dígitos.
Um widget Select que usa uma lista de províncias italianas como suas opções.
Um widget Select que usa uma lista de regiões italianas como suas opções.
Um campo de formulário que valida a entrada como um código postal japonês. Ele aceita sete dígitos, com ou sem hífen.
Um widget Select que usa uma lista de prefeituras japonesas como suas opções.
Um widget Select que usa uma lista de estados mexicanos como suas opções.
Um campo de formulário que valida a entrada como um número de seguro social norueguesa (personnummer).
Um campo de formulário que valida a entrada como um código zip norueguês. Códigos válidos possuem quatro dígitos.
Um widget Select que usa uma lista de minicípios noruegueses (fylker) como suas opções.
Um campo de formulário que valida a entrada como uma DNI (Identidade nacional peruana).
Um campo de formulário que valida a entrada como um número RUC (Registro Unico de Contribuintes). Números RUC válidos possuem 11 dígitos.
Um widget Select que usa uma lista de Departamentos Peruanos como suas opções.
Um campo de formulário que valida a entrada como um número de identificação polonês (PESEL).
Um campo de formulário que valida a entrada como um Número de Registro Nacional Oficial Polonês (REGON), tendo tanto sete quando nove dígitos. O algorítmo checksum é usado para REGONs está documentado em http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
Um campo de formulário que valida a entrada como um código postal polonês. O formato válido é XX-XXX, onde X é um dígito.
Um campo de formulário que valida a entrada como a Número de Taxa Polonês (NIP). Formatos válidos são XXX-XXX-XX-XX ou XX-XX-XXX-XXX. O algorítmo checksum usado para NIPs está documentado em http://wipos.p.lodz.pl/zylla/ut/nip-rego.html.
Um widget Select que usa uma lista de unidades administrativas polonesas como suas opções.
Um widget Select que usa uma lista de voivodeships polonesas (províncias administrativas) como suas opções.
Um campo de formulário que valida códigos de identificação fiscal (CIF). O valor retornado mostra o RO na frente, se fornecido.
Um campo de formulário que valida códigos numéricos pessoais (CNP).
Um campo de formulário que valida sua entrada como um um nome ou abreviação de uma comarca (judete) romena. Ele normaliza a entrada como uma abreviatura padrão de registro de veículo para a comarca informada. Este campo só aceita nomes escritos com sinais diacríticos; considere usar ROCountySelect como uma alternativa.
Um widget Select que usa uma lista de países romenos (judete) como suas opções.
Um campo de formulário que valida sua entrada como um Número de Conta de Banco Internacional Romeno (IBAN). O formato válido é ROXX-XXXX-XXXX-XXXX-XXXX-XXXX, com ou sem hífens.
Um campo de formulário que valida como números de telefone romenos, números curtos especiais excluídos.
Um campo de formulário que valida como um código postal romeno.
Um campo de formulário que valida a entrada como um código postal eslovaco. Formatos válidos são XXXXX ou XXX XX, onde X é um dígito.
Um widget Select que usa uma lista de distritos eslovacos como suas opções.
Um widget Select que usa uma lista de regiões eslovacas como suas opções.
Um campo de formulário que valida a entrada como um número ID sulafricano. A validação usa o Luhn checksum e um verificador simplista (i.e., não é totalmente exato) para a data do nascimento.
Um campo de formulário que valida a entrada como um código postal da Africa do Sul. Códigos postais válidos devem ter quatro dígitos.
Um campo de formulário que valida a entrada como um código NIF/NIE/CIF espanhol (Número de identificação Fiscal).
Um campo de formulário que valida a entrada como um número de conta de banco espanhol (Código Conta Cliente ou CCC). Um número CCC válido tem o formato EEEE-OOOO-CC-AAAAAAAAAA, onde os dígitos E, O, C e A denotam a entidade, office (escritório), checksum e account (conta), repectivamente. O primeiro dígito checksum valida a entidade e o escritório. O segundo dígito checksum valida a conta. Ele também é valido usar um espaço como um delimitador, ou não usar delimitadores.
Um campo de formulário que valida a entrada como um número de telefone espanhol. Números válidos possuem nove dígitos, o primeiro dos quais é 6, 8 ou 9.
Um campo de formulário que valida a entrada como um código postal espanhol. Códigos válidos possuem cinco dígitos, os dois primeiros estando entre 01 e 52, representando a província.
Um widget Select que usa uma lista de províncias espanholas como suas opções.
Um widget Select que usa uma lista de regiões espanholas como suas opções.
Um campo de formulário que valida a entrada como um número de cartão de identidade suíça. Um número válido deve estar no formato X1234567<0 ou 1234567890 e ter os checksums corretos -- veja http://adi.kousz.ch/artikel/IDCHE.htm.
Um campo de formulário que valida a entrada como um número de telefone suíço. O formato correto é 0XX XXX XX XX. 0XX.XXX.XX.XX e 0XXXXXXXXX validam mas são convertidos para 0XX XXX XX XX.
Um campo de formulário que valida a entrada como um código zip suíço. Códigos válidos consitem em quatro dígitos.
Um widget Select que usa uma lista de estados suíços como suas opções.
Um campo de formulário que valida a entrada como um código postal do Reino Unido. A expressão regular usada é proveniente do esquema para os tipos de endereço no padrão britânico (British Standard) BS7666 em http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd.
Um widget Select que usa uma lista de paises/regiões do Reino Unido como suas opções.
Um widget Select que usa uma lista de nações do Reino Unido como suas opções.
Um campo de formulário que valida a entrada como um número de telefone dos E.U.A.
Um campo de formulário que valida a entrada como um Número de Seguro Social dos E.U.A. (SSN).
Um SSN válido deve obedecer as seguintes regras:
Um campo de formulário que valida a entrada como um nome ou abreviação de um estado dos E.U.A. A entrada é normalizada para o padrão de duas letras da abreviação do serviço postal para o estado informado.
Um campo de formulário que valida a entrada como um código ZIP dos E.U.A. Os formatos válidos são XXXXX ou XXXXX-XXXX.
Um widget Select que usa uma lista de estados/territórios dos E.U.A. como suas opções.
Um CharField que verifica se o valor é um número de telefone válido dos E.U.A. (no formato XXX-XXX-XXXX).
Um campo de model que o formulário representa como um campo forms.USStateField e armazena a abreviação de duas letras dos E.U.A. no banco de dados.
Dec 26, 2011