The “local flavor” app

django-localflavor is a collection of assorted pieces of code that are useful for particular countries or cultures. These are called the “local flavor” add-ons and live in the localflavor package.

Inside that package, country- or culture-specific code is organized into subpackages, named using ISO 3166 country codes.

Most of the localflavor add-ons are localized form components deriving from the forms framework – for example, a USStateField that knows how to validate U.S. state abbreviations, and a FISocialSecurityNumber that knows how to validate Finnish social security numbers.

To use one of these localized components, just import the relevant subpackage. For example, here’s how you can create a form with a field representing a French telephone number:

from django import forms
from localflavor.fr.forms import FRPhoneNumberField

class MyForm(forms.Form):
    my_french_phone_no = FRPhoneNumberField()

The localflavor package also includes a generic subpackage, containing useful code that is not specific to one particular country or culture. This package defines date, datetime and split datetime input fields based on those from the forms, but with non-US default formats. Here’s an example of how to use them:

from django import forms
from localflavor import generic

class MyForm(forms.Form):
    my_date_field = generic.forms.DateField()

The localflavor generic package also has IBAN and BIC model and form fields. Here’s an example of how to use the IBAN and BIC form fields:

from django import forms
from localflavor.generic.forms import BICFormField, IBANFormField

class MyForm(forms.Form):
    iban = IBANFormField()
    bic = BICFormField()

Installation

To install django-localflavor use your favorite packaging tool, e.g.pip:

pip install django-localflavor

Or download the source distribution from PyPI at https://pypi.python.org/pypi/django-localflavor, decompress the file and run python setup.py install in the unpacked directory.

Then add 'localflavor' to your INSTALLED_APPS setting:

INSTALLED_APPS = (
    # ...
    'localflavor',
)

Note

Adding 'localflavor' to your INSTALLED_APPS setting is required for South and translations to work. Using django-localflavor without adding it to your INSTALLED_APPS setting is not recommended.

Internationalization

Localflavor has its own catalog of translations, in the directory localflavor/locale, and it’s not loaded automatically like Django’s general catalog in django/conf/locale. If you want localflavor’s texts to be translated, like form fields error messages, you must include localflavor in the INSTALLED_APPS setting, so the internationalization system can find the catalog, as explained in How Django discovers translations.

Adding flavors

We’d love to add more of these, so please create a ticket with any code you’d like to contribute. One thing we ask is that you please use Unicode objects (u'mystring') for strings, rather than setting the encoding in the file. See any of the existing flavors for examples.

See the contributing documentation for how to run the tests while working on a local flavor.

If you consider adding a new localflavor for country here are some examples that you might consider implementing:

  • form fields and form widgets
    • ID verification
    • tax or social security number validator
    • car registration
    • zip code validation
    • phone number validation
    • country area selects, e.g. cities, counties, states, provinces
  • model fields, e.g. for storing any of the above form fields’ values
  • local translations of English area names. Join your language team at Transifex: https://www.transifex.com/projects/p/django-localflavor/

Releases

Due to django-localflavor’ history as a former contrib app, the app is required to be working with the actively maintained Django versions. See the documentation about Django’s release process for more information.

django-localflavor releases are not tied to the release cycle of Django. Version numbers follow the appropriate Python standards, e.g. PEPs 386 and 440.

How to migrate

If you’ve used the old django.contrib.localflavor package or one of the temporary django-localflavor-* releases, follow these two easy steps to update your code:

  1. Install the third-party django-localflavor package.

  2. Change your app’s import statements to reference the new packages.

    For example, change this:

    from django.contrib.localflavor.fr.forms import FRPhoneNumberField
    

    ...to this:

    from localflavor.fr.forms import FRPhoneNumberField
    

    Or if you used one of the shortlived django-localflavor-* packages change:

    from django_localflavor_fr.forms import FRPhoneNumberField
    

    ...to this:

    from localflavor.fr.forms import FRPhoneNumberField
    

The code in the new package is the same (it was copied directly from Django), so you don’t have to worry about backwards compatibility in terms of functionality. Only the imports have changed.

Backwards compatibility

We will always attempt to make localflavor reflect the officially gazetted policies of the appropriate local government authority. For example, if a government body makes a change to add, alter, or remove a province (or state, or county), that change will be reflected in localflavor in the next release.

When a backwards-incompatible change is made (for example, the removal or renaming of a province) the localflavor in question will raise a warning when that localflavor is imported. This provides a run-time indication that something may require attention.

However, once you have addressed the backwards compatibility (for example, auditing your code to see if any data migration is required), the warning serves no purpose. The warning can then be suppressed. For example, to suppress the warnings raised by the Indonesian localflavor you would use the following code:

import warnings
warnings.filterwarnings('ignore',
                        category=RuntimeWarning,
                        module='localflavor.id')
from localflavor.id import forms as id_forms

Indices and tables

Authors

  • Aaron Boman
  • Adam Taylor
  • Adrian Holovaty
  • Agustín Scaramuzza
  • Alex Butum
  • Alex Gaynor
  • Alex Hill
  • Alex Zhang
  • Alonisser
  • Andreas Pelme
  • Andres Torres Marroquin
  • Andrew Godwin
  • Aymeric Augustin
  • baffolobill
  • Ben Davis
  • Ben Konrath
  • Bruno M. Custódio
  • Burhan Khalid
  • Claude Paroz
  • Daniel Ampuero
  • Daniela Ponader
  • Danielle Madeley
  • Daniel Roschka
  • d.merc
  • Douglas Miranda
  • Erik Romijn
  • Flavio Curella
  • Florian Apolloner
  • François Constant
  • Gary Wilson Jr
  • Gerardo Orozco
  • Ghassen Telmoudi
  • Grzes Furga
  • Honza Král
  • Horst Gutmann
  • Ivan Fisun
  • Jaap Roes
  • Jacob Kaplan-Moss
  • James Bennett
  • Jannis Leidel
  • Jan Pieter Waagmeester
  • Jérémie Ferry
  • Jocelyn Delalande
  • Johnny Lee Othon
  • Jonas Ghyllebert
  • Joseph Kocherhans
  • Josh Crompton
  • Julien Phalip
  • Justin Bronn
  • Karen Tracey
  • László Ratskó
  • Łukasz Langa
  • Luke Benstead
  • luyikei
  • Malcolm Tredinnick
  • Martin Ogden
  • Marti Raudsepp
  • Matias Dinota
  • Michał Sałaban
  • Mike Lissner
  • Olivier Sels
  • Rael Max
  • Ramiro Morales
  • Rolf Erik Lekang
  • Russell Keith-Magee
  • Serafeim Papastefanos
  • Sergio Oliveira
  • Simonas Kazlauskas
  • Simon Charette
  • Stefan Kjartansson
  • tadeo
  • Thiago Avelino
  • Tino de Bruijn
  • Trey Hunner
  • Tyler Ball
  • Tom Forbes
  • Venelin Stoykov
  • Vladimir Nani

Changelog

1.4 (unreleased)

New flavors:

  • None

New fields for existing flavors:

  • Added MXCLABEField model and form fields. (gh-227).
  • Added AUTaxFileNumberField model and form fields. (gh-238)
  • Added KWGovernorateSelect field to easily select Kuwait governorates. (gh-231).

Modifications to existing flavors:

1.3 (2016-05-06)

New flavors:

  • Added local flavor for Bulgaria (gh-191)
  • Added local flavor for Tunisia (gh-141)
  • Added local flavor for Hungary (gh-213)

New fields for existing flavors:

  • Added ARCBUField form field. (gh-151).
  • Added NLZipCodeField, NLProvinceField, NLSoFiNumberField, NLPhoneNumberField model fields. (gh-152).
  • Added AUBusinessNumberField model and form fields. (gh-63)

Modifications to existing flavors:

  • Moved Dutch validators from localflavor.nl.forms to localflavor.nl.validators (gh-152).
  • Fix check for promotional social security numbers in USSocialSecurityNumberField (gh-157).
  • Updated IBANField to support the latest additions to the IBAN Registry (version 64 / March 2016).
  • Fix bug with MXRFCField where some incorrect values would validate correctly. (gh-204).
  • Fixed bug with IBANFormField validation. (gh-215).
  • Update regex in DEZipCodeField to prohibit invalid postal codes. (gh-216).
  • Added deconstructor methods to validators. (gh-220).
  • Fix bug in ESIdentityCardNumberField where some valid values for NIE numbers were not validating. (gh-217)
  • Add deconstruct method to all model fields. (gh-162) (gh-224)

Other changes:

  • Drop support for Django 1.5, Django 1.6 and Python 2.6 (gh-170).

1.2 (2015-11-27)

New flavors:

  • None

New fields for existing flavors:

  • Added form field for Estonian business registration codes (gh-135).
  • Added model field for Ecuadorian provinces (gh-138).
  • Added form field for Swiss Social Security numbers ( (gh-155).
  • Added form field for Brazilian Legal Process numbers (Processo) (gh-163).

Modifications to existing flavors:

  • Fixed misspelled Polish administrative unit names (gh-136).
  • Added Kosovo and Timor-Leste to list of IBAN countries (gh-139).
  • Fixed error in Romanian fiscal identity code (CIF) field when value has a trailing slash (gh-146).
  • Updated validation in Swiss postal code field to only accept values in the range 1000 - 9000 (gh-154).
  • Added validator for International Article Number (EAN) to the generic module (gh-156).
  • Updated Italian social security number field to use ‘tax code’ in error message (gh-167).
  • Fixed error in Greek tax number code field when value has only alpha characters (gh-171).
  • Added stricter validation in the Brazilian Cadastro de Pessoas Físicas (CPF) field (gh-172).
  • Corrected Romanian counties choice names to use ș and ț (comma below) (gh-175).
  • Updated Brazilian postal code field to also accept values with XX.XXX-XXX and XXXXXXXX formats (gh-177).
  • Marked US state names for translation (gh-178).
  • Fixed French national identification number validation for people born before 1976 in Corsica (gh-186).

1.1 (2014-12-10)

New flavors:

  • Added local flavor for Denmark (gh-83)
  • Added local flavor for Estonia (gh-70)
  • Added local flavor for Latvia (gh-68)
  • Added local flavor for Malta (gh-88)
  • Added local flavor for Pakistan (gh-41)
  • Added local flavor for Singapore (gh-119)

New fields for existing flavors:

  • Added model and form fields for French SIREN/SIRET numbers (gh-123)
  • Added model field for states of Brazil (gh-22)
  • Added form field for Indian Aadhaar numbers (gh-23)
  • Added model field for states of India (gh-23)
  • Added form field for Lithuanian phone numbers
  • Added model field for Dutch bank accounts (gh-42)
  • Added form field for Italian phone numbers (gh-74)
  • Added form field for French National Identification Number (gh-75)
  • Added IBAN model and form fields (gh-86)
  • Added BIC model and form fields (gh-125)
  • Added SSN model field for US (gh-96)
  • Added ZIP code model field for US (gh-55)

Other modifications to existing flavors:

  • backward incompatible Updated the region lists of Great Britain (gh-43, gh-126)
  • Added Ceuta and Mellila to regions of Spain (gh-8)
  • Added support entities in Italian SSN form field (gh-20)
  • Added Japanese prefecture codes and fix prefecture order (gh-27)
  • Added normalization for Lithuanian postal code field (gh-69)
  • Added whitespace stripping whitespace from US ZIP code field (gh-77)
  • Added an option for customizing French form field labels (gh-102)
  • Added mapping between provinces and regions for Italy (gh-105)
  • Added Telengana to states of India (gh-107)
  • Added support for 14X and 17X Chinese cell numbers (gh-17, gh-120)
  • Allowed spaces in CPF numbers for Brazil (gh-32)
  • Fixed CIF validation for Spain (gh-78)
  • Fixed armed forces “states” for US (gh-8)
  • Fixed REGON number validation for Poland (gh-62)
  • Rejected US SSN starting with 9 (gh-35)
  • Rejected Brazilian CPF number when all numbers all numbers are equal (gh-103)
  • Added ‘Y’ to the NIE number validation for Spain (gh-127)
  • Updated Argentina’s CUIT number validation to support legal types 24 and 33 (gh-121)
  • Added ‘R’, ‘V’ and ‘W’ to the Spanish identity card number validation (gh-132)

Other changes:

  • Added checksums module (from Django) providing a Luhn validator (gh-122)

1.0 (2013-07-29)

Initial release

Argentina (ar)

AR-specific Form helpers.

class localflavor.ar.forms.ARCBUField(*args, **kwargs)[source]

This field validates a CBU (Clave Bancaria Uniforme). A CBU is a 22-digits long number. The first 8 digits denote bank and branch number, plus a verifying digit. The remaining 14 digits denote an account number, plus a verifying digit.

More info: https://es.wikipedia.org/wiki/Clave_Bancaria_Uniforme

New in version 1.3.

clean(value)[source]

Value must be a 22 digits long number.

class localflavor.ar.forms.ARCUITField(max_length=None, min_length=None, *args, **kwargs)[source]

This field validates a CUIT (Código Único de Identificación Tributaria). A CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit.

More info: http://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Identificaci%C3%B3n_Tributaria

English info: http://www.justlanded.com/english/Argentina/Argentina-Guide/Visas-Permits/Other-Legal-Documents

clean(value)[source]

Value can be either a string in the format XX-XXXXXXXX-X or an 11-digit number.

class localflavor.ar.forms.ARDNIField(max_length=10, min_length=7, *args, **kwargs)[source]

A field that validates ‘Documento Nacional de Identidad’ (DNI) numbers.

clean(value)[source]

Value can be a string either in the [X]X.XXX.XXX or [X]XXXXXXX formats.

class localflavor.ar.forms.ARPostalCodeField(max_length=8, min_length=4, *args, **kwargs)[source]

A field that accepts a ‘classic’ NNNN Postal Code or a CPA.

See:
http://www.correoargentino.com.ar/cpa/que_es http://www.correoargentino.com.ar/cpa/como_escribirlo
class localflavor.ar.forms.ARProvinceSelect(attrs=None)[source]

A Select widget that uses a list of Argentinean provinces/autonomous cities as its choices.

localflavor.ar.ar_provinces.PROVINCE_CHOICES = (('B', 'Buenos Aires'), ('K', 'Catamarca'), ('H', 'Chaco'), ('U', 'Chubut'), ('C', 'Ciudad Autónoma de Buenos Aires'), ('X', 'Córdoba'), ('W', 'Corrientes'), ('E', 'Entre Ríos'), ('P', 'Formosa'), ('Y', 'Jujuy'), ('L', 'La Pampa'), ('F', 'La Rioja'), ('M', 'Mendoza'), ('N', 'Misiones'), ('Q', 'Neuquén'), ('R', 'Río Negro'), ('A', 'Salta'), ('J', 'San Juan'), ('D', 'San Luis'), ('Z', 'Santa Cruz'), ('S', 'Santa Fe'), ('G', 'Santiago del Estero'), ('V', 'Tierra del Fuego, Antártida e Islas del Atlántico Sur'), ('T', 'Tucumán'))

A list of Argentinean provinces and autonomous cities as choices in a formfield. From http://www.argentina.gov.ar/argentina/portal/paginas.dhtml?pagina=425

Austria (at)

AT-specific Form helpers

class localflavor.at.forms.ATSocialSecurityNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Austrian Social Security numbers are composed of a 4 digits and 6 digits field. The latter represents in most cases the person’s birthdate while the first 4 digits represent a 3-digits counter and a one-digit checksum.

The 6-digits field can also differ from the person’s birthdate if the 3-digits counter suffered an overflow.

This code is based on information available on http://de.wikipedia.org/wiki/Sozialversicherungsnummer#.C3.96sterreich

class localflavor.at.forms.ATStateSelect(attrs=None)[source]

A Select widget that uses a list of AT states as its choices.

class localflavor.at.forms.ATZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input is an Austrian postcode.

Accepts 4 digits (first digit must be greater than 0).

localflavor.at.at_states.STATE_CHOICES = (('BL', 'Burgenland'), ('KA', 'Carinthia'), ('NO', 'Lower Austria'), ('OO', 'Upper Austria'), ('SA', 'Salzburg'), ('ST', 'Styria'), ('TI', 'Tyrol'), ('VO', 'Vorarlberg'), ('WI', 'Vienna'))

A list of Austrian states according to https://en.wikipedia.org/wiki/States_of_Austria

Australia (au)

Forms

Australian-specific Form helpers

class localflavor.au.forms.AUBusinessNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as an Australian Business Number (ABN)

New in version 1.3.

prepare_value(value)[source]

Format the value for display.

class localflavor.au.forms.AUPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as an Australian phone number.

Valid numbers have ten digits.

clean(value)[source]

Validate a phone number. Strips parentheses, whitespace and hyphens.

class localflavor.au.forms.AUPostCodeField(max_length=4, min_length=None, *args, **kwargs)[source]

Australian post code field.

Assumed to be 4 digits. Northern Territory 3-digit postcodes should have leading zero.

class localflavor.au.forms.AUStateSelect(attrs=None)[source]

A Select widget that uses a list of Australian states/territories as its choices.

class localflavor.au.forms.AUTaxFileNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as an Australian Tax File Number (TFN)

New in version 1.4.

prepare_value(value)[source]

Format the value for display.

Models

class localflavor.au.models.AUBusinessNumberField(*args, **kwargs)[source]

A model field that checks that the value is a valid Australian Business Number (ABN).

New in version 1.3.

deconstruct()[source]
description = 'Australian Business Number'
formfield(**kwargs)[source]
to_python(value)[source]

Ensure the ABN is stored without spaces.

validators = [<localflavor.au.validators.AUBusinessNumberFieldValidator object at 0x7f5800b3ef28>, <django.core.validators.MaxLengthValidator object at 0x7f5800b455f8>]
class localflavor.au.models.AUPhoneNumberField(*args, **kwargs)[source]

A model field that checks that the value is a valid Australian phone number (ten digits).

deconstruct()[source]
description = 'Australian Phone number'
formfield(**kwargs)[source]
class localflavor.au.models.AUPostCodeField(*args, **kwargs)[source]

A model field that forms represent as a AUPostCodeField field and stores the four-digit Australian postcode in the database.

deconstruct()[source]
description = 'Australian Postcode'
formfield(**kwargs)[source]
class localflavor.au.models.AUStateField(*args, **kwargs)[source]

A model field that is represented with STATE_CHOICES` choices and stores the three-letter Australian state abbreviation in the database.

deconstruct()[source]
description = 'Australian State'
class localflavor.au.models.AUTaxFileNumberField(*args, **kwargs)[source]

A model field that checks that the value is a valid Tax File Number (TFN).

A TFN is a number issued to a person by the Commissioner of Taxation and is used to verify client identity and establish their income levels. It is a eight or nine digit number without any embedded meaning.

New in version 1.4.

deconstruct()[source]
description = 'Australian Tax File Number'
formfield(**kwargs)[source]
to_python(value)[source]

Ensure the TFN is stored without spaces.

validators = [<localflavor.au.validators.AUTaxFileNumberFieldValidator object at 0x7f5800b45160>, <django.core.validators.MaxLengthValidator object at 0x7f5800b456a0>]

Data

localflavor.au.au_states.STATE_CHOICES = (('ACT', 'Australian Capital Territory'), ('NSW', 'New South Wales'), ('NT', 'Northern Territory'), ('QLD', 'Queensland'), ('SA', 'South Australia'), ('TAS', 'Tasmania'), ('VIC', 'Victoria'), ('WA', 'Western Australia'))

An alphabetical list of states for use as choices in a formfield.

Belgium (be)

Forms

Belgium-specific Form helpers

class localflavor.be.forms.BEPhoneNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as a belgium phone number.

Landlines have a seven-digit subscriber number and a one-digit area code, while smaller cities have a six-digit subscriber number and a two-digit area code. Cell phones have a six-digit subscriber number and a two-digit area code preceeded by the number 4. 0d ddd dd dd, 0d/ddd.dd.dd, 0d.ddd.dd.dd, 0dddddddd - dialling a bigger city 0dd dd dd dd, 0dd/dd.dd.dd, 0dd.dd.dd.dd, 0dddddddd - dialling a smaller city 04dd ddd dd dd, 04dd/ddd.dd.dd, 04dd.ddd.dd.dd, 04ddddddddd - dialling a mobile number

class localflavor.be.forms.BEPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as a belgium postal code.

Belgium postal code is a 4 digits string. The first digit indicates the province (except for the 3ddd numbers that are shared by the eastern part of Flemish Brabant and Limburg and the and 1ddd that are shared by the Brussels Capital Region, the western part of Flemish Brabant and Walloon Brabant)

class localflavor.be.forms.BEProvinceSelect(attrs=None)[source]

A Select widget that uses a list of belgium provinces as its choices.

class localflavor.be.forms.BERegionSelect(attrs=None)[source]

A Select widget that uses a list of belgium regions as its choices.

Data

localflavor.be.be_provinces.PROVINCE_CHOICES = (('VAN', 'Antwerp'), ('BRU', 'Brussels'), ('VOV', 'East Flanders'), ('VBR', 'Flemish Brabant'), ('WHT', 'Hainaut'), ('WLG', 'Liege'), ('VLI', 'Limburg'), ('WLX', 'Luxembourg'), ('WNA', 'Namur'), ('WBR', 'Walloon Brabant'), ('VWV', 'West Flanders'))

ISO codes

localflavor.be.be_regions.REGION_CHOICES = (('BRU', 'Brussels Capital Region'), ('VLG', 'Flemish Region'), ('WAL', 'Wallonia'))

ISO codes

Bulgaria (bg)

Validators

localflavor.bg.validators.egn_validator(egn)[source]

Check Bulgarian unique citizenship number (EGN) for validity More details https://en.wikipedia.org/wiki/Unique_citizenship_number Full information in Bulgarian about algorithm is available here http://www.grao.bg/esgraon.html#section2

localflavor.bg.validators.eik_validator(eik)[source]

Check Bulgarian EIK/BULSTAT codes for validity full information in Bulgarian about algorithm is available here http://bulstat.registryagency.bg/About.html

Model Fields

class localflavor.bg.models.BGEGNField(*args, **kwargs)[source]

Field that stores Bulgarian unique citizenship number (EGN)

This is shortcut for:

models.CharField(max_length=10, validators=[localflavor.bg.validators.egn_validator])
class localflavor.bg.models.BGEIKField(*args, **kwargs)[source]

Field that stores Bulgarian EIK/BULSTAT codes

This is shortcut for:

models.CharField(max_length=13, validators=[localflavor.bg.validators.eik_validator])

Utils

localflavor.bg.utils.get_egn_birth_date(egn)[source]

Extract birth date from Bulgarian unique citizenship number (EGN) More details https://en.wikipedia.org/wiki/Unique_citizenship_number Information in Bulgarian for this can be found here http://www.grao.bg/esgraon.html#section2

Brazil (br)

Forms

BR-specific Form helpers

class localflavor.br.forms.BRCNPJField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as Brazilian CNPJ.

Input can either be of the format XX.XXX.XXX/XXXX-XX or be a group of 14 digits.

clean(value)[source]

Value can be either a string in the format XX.XXX.XXX/XXXX-XX or a group of 14 characters.

class localflavor.br.forms.BRCPFField(max_length=14, min_length=11, *args, **kwargs)[source]

A form field that validates a CPF number or a CPF string. A CPF number is compounded by XXX.XXX.XXX-VD. The two last digits are check digits.

More information: http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas

clean(value)[source]

Value can be either a string in the format XXX.XXX.XXX-XX or an 11-digit number.

class localflavor.br.forms.BRPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as a Brazilian phone number, that must be in either of the following formats: XX-XXXX-XXXX or XX-XXXXX-XXXX.

class localflavor.br.forms.BRProcessoField(max_length=25, min_length=20, *args, **kwargs)[source]

A form field that validates a Legal Process(Processo) number or a Legal Process string. A Processo number is compounded by NNNNNNN-DD.AAAA.J.TR.OOOO. The two DD digits are check digits. More information: http://www.cnj.jus.br/busca-atos-adm?documento=2748

New in version 1.2.

clean(value)[source]

Value can be either a string in the format NNNNNNN-DD.AAAA.J.TR.OOOO or an 20-digit number.

class localflavor.br.forms.BRStateChoiceField(required=True, widget=None, label=None, initial=None, help_text=None)[source]

A choice field that uses a list of Brazilian states as its choices.

class localflavor.br.forms.BRStateSelect(attrs=None)[source]

A Select widget that uses a list of Brazilian states/territories as its choices.

class localflavor.br.forms.BRZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a Brazilian zip code, with the format XXXXX-XXX.

Data

localflavor.br.br_states.STATE_CHOICES = (('AC', 'Acre'), ('AL', 'Alagoas'), ('AP', 'Amapá'), ('AM', 'Amazonas'), ('BA', 'Bahia'), ('CE', 'Ceará'), ('DF', 'Distrito Federal'), ('ES', 'Espírito Santo'), ('GO', 'Goiás'), ('MA', 'Maranhão'), ('MT', 'Mato Grosso'), ('MS', 'Mato Grosso do Sul'), ('MG', 'Minas Gerais'), ('PA', 'Pará'), ('PB', 'Paraíba'), ('PR', 'Paraná'), ('PE', 'Pernambuco'), ('PI', 'Piauí'), ('RJ', 'Rio de Janeiro'), ('RN', 'Rio Grande do Norte'), ('RS', 'Rio Grande do Sul'), ('RO', 'Rondônia'), ('RR', 'Roraima'), ('SC', 'Santa Catarina'), ('SP', 'São Paulo'), ('SE', 'Sergipe'), ('TO', 'Tocantins'))

An alphabetical list of Brazilian states for use as choices in a formfield

Canada (ca)

Forms

Canada-specific Form helpers

class localflavor.ca.forms.CAPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Canadian phone number form field.

class localflavor.ca.forms.CAPostalCodeField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

Canadian postal code form field.

Validates against known invalid characters: D, F, I, O, Q, U Additionally the first character cannot be Z or W. For more info see: http://www.canadapost.ca/tools/pg/manual/PGaddress-e.asp#1402170

class localflavor.ca.forms.CAProvinceField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input is a Canadian province name or abbreviation. It normalizes the input to the standard two-leter postal service abbreviation for the given province.

class localflavor.ca.forms.CAProvinceSelect(attrs=None)[source]

A Select widget that uses a list of Canadian provinces and territories as its choices.

class localflavor.ca.forms.CASocialInsuranceNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A Canadian Social Insurance Number (SIN).

Checks the following rules to determine whether the number is valid:

Data

localflavor.ca.ca_provinces.PROVINCE_CHOICES = (('AB', 'Alberta'), ('BC', 'British Columbia'), ('MB', 'Manitoba'), ('NB', 'New Brunswick'), ('NL', 'Newfoundland and Labrador'), ('NT', 'Northwest Territories'), ('NS', 'Nova Scotia'), ('NU', 'Nunavut'), ('ON', 'Ontario'), ('PE', 'Prince Edward Island'), ('QC', 'Quebec'), ('SK', 'Saskatchewan'), ('YT', 'Yukon'))

An alphabetical list of provinces and territories for use as choices in a formfield. Source: http://www.canada.gc.ca/othergov/prov_e.html

localflavor.ca.ca_provinces.PROVINCES_NORMALIZED = {'nu': 'NU', 'pei': 'PE', 'b.c.': 'BC', 'pe': 'PE', 'nf': 'NL', 'yk': 'YT', 'quebec': 'QC', 'bc': 'BC', 'ns': 'NS', 'northwest territories': 'NT', 'sk': 'SK', 'prince edward island': 'PE', 'nt': 'NT', 'saskatchewan': 'SK', 'british columbia': 'BC', 'nb': 'NB', 'newfoundland and labrador': 'NL', 'alberta': 'AB', 'nl': 'NL', 'qc': 'QC', 'yukon territory': 'YT', 'ab': 'AB', 'p.e.i.': 'PE', 'mb': 'MB', 'nunavut': 'NU', 'yukon': 'YT', 'ontario': 'ON', 'manitoba': 'MB', 'on': 'ON', 'new brunswick': 'NB', 'yt': 'YT', 'newfoundland': 'NL', 'nova scotia': 'NS', 'pq': 'QC'}

a mapping of province misspellings/abbreviations to normalized abbreviations

Switzerland (ch)

Forms

Swiss-specific Form helpers

class localflavor.ch.forms.CHIdentityCardNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A Swiss identity card number.

Checks the following rules to determine whether the number is valid:

  • Conforms to the X1234567<0 or 1234567890 format.
  • Included checksums match calculated checksums
class localflavor.ch.forms.CHPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Validate local Swiss phone number (not international ones) The correct format is ‘0XX XXX XX XX’. ‘0XX.XXX.XX.XX’ and ‘0XXXXXXXXX’ validate but are corrected to ‘0XX XXX XX XX’.

class localflavor.ch.forms.CHSocialSecurityNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A Swiss Social Security number (also known as the new AHV Number).

Checks the following rules to determine whether the number is valid:

  • Conforms to the 756.XXXX.XXXX.XX
  • Included checksums match calculated checksums

See: http://de.wikipedia.org/wiki/Sozialversicherungsnummer#Versichertennummer

New in version 1.2.

class localflavor.ch.forms.CHStateSelect(attrs=None)[source]

A Select widget that uses a list of CH states as its choices.

class localflavor.ch.forms.CHZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a Swiss zip code. Valid codes consist of four digits ranging from 1XXX to 9XXX.

See: http://en.wikipedia.org/wiki/Postal_codes_in_Switzerland_and_Liechtenstein

Data

localflavor.ch.ch_states.STATE_CHOICES = (('AG', 'Aargau'), ('AI', 'Appenzell Innerrhoden'), ('AR', 'Appenzell Ausserrhoden'), ('BS', 'Basel-Stadt'), ('BL', 'Basel-Land'), ('BE', 'Berne'), ('FR', 'Fribourg'), ('GE', 'Geneva'), ('GL', 'Glarus'), ('GR', 'Graubuenden'), ('JU', 'Jura'), ('LU', 'Lucerne'), ('NE', 'Neuchatel'), ('NW', 'Nidwalden'), ('OW', 'Obwalden'), ('SH', 'Schaffhausen'), ('SZ', 'Schwyz'), ('SO', 'Solothurn'), ('SG', 'St. Gallen'), ('TG', 'Thurgau'), ('TI', 'Ticino'), ('UR', 'Uri'), ('VS', 'Valais'), ('VD', 'Vaud'), ('ZG', 'Zug'), ('ZH', 'Zurich'))

An alphabetical list of states

Chile (cl)

Forms

Chile specific form helpers.

class localflavor.cl.forms.CLRegionSelect(attrs=None)[source]

A Select widget that uses a list of Chilean Regions (Regiones) as its choices.

class localflavor.cl.forms.CLRutField(*args, **kwargs)[source]

Chilean “Rol Unico Tributario” (RUT) field. This is the Chilean national identification number.

Samples for testing are available from https://palena.sii.cl/cvc/dte/ee_empresas_emisoras.html

clean(value)[source]

Check and clean the Chilean RUT.

Data

localflavor.cl.cl_regions.REGION_CHOICES = (('RM', 'Región Metropolitana de Santiago'), ('I', 'Región de Tarapacá'), ('II', 'Región de Antofagasta'), ('III', 'Región de Atacama'), ('IV', 'Región de Coquimbo'), ('V', 'Región de Valparaíso'), ('VI', "Región del Libertador Bernardo O'Higgins"), ('VII', 'Región del Maule'), ('VIII', 'Región del Bío Bío'), ('IX', 'Región de la Araucanía'), ('X', 'Región de los Lagos'), ('XI', 'Región de Aysén del General Carlos Ibáñez del Campo'), ('XII', 'Región de Magallanes y la Antártica Chilena'), ('XIV', 'Región de Los Ríos'), ('XV', 'Región de Arica-Parinacota'))

A list of Chilean regions as choices in a formfield.

China (cn)

Forms

China(mainland)-specific Form helpers

class localflavor.cn.forms.CNProvinceSelect(attrs=None)[source]

A select widget providing the list of provinces and districts in People’s Republic of China as choices.

class localflavor.cn.forms.CNPostCodeField(*args, **kwargs)[source]

A form field that validates input as postal codes in mainland China. Valid codes are in the format of XXXXXX where X is a digit.

class localflavor.cn.forms.CNIDCardField(max_length=18, min_length=15, *args, **kwargs)[source]

A form field that validates input as a Resident Identity Card (PRC) number.

This field would check the following restrictions:
  • the length could only be 15 or 18;
  • if the length is 18, the last character can be x or X;
  • has a valid checksum (only for those with a length of 18);
  • has a valid date of birth;
  • has a valid province.

The checksum algorithm is described in GB11643-1999. See: http://en.wikipedia.org/wiki/Resident_Identity_Card#Identity_card_number

clean(value)[source]

Check whether the input is a valid ID Card Number.

has_valid_birthday(value)[source]

This method would grab the date of birth from the ID card number and test whether it is a valid date.

has_valid_checksum(value)[source]

This method checks if the last letter/digit is valid according to GB11643-1999.

has_valid_location(value)[source]

This method checks if the first two digits in the ID Card are valid province code.

class localflavor.cn.forms.CNPhoneNumberField(*args, **kwargs)[source]

A form field that validates input as a telephone number in mainland China. A valid phone number could be like: 010-12345678.

Considering there might be extension numbers, this could also be: 010-12345678-35.

class localflavor.cn.forms.CNCellNumberField(*args, **kwargs)[source]

A form field that validates input as a cellphone number in mainland China. A valid cellphone number could be like: 13012345678.

A very rough rule is used here: the first digit should be 1, the second should be 3, 4, 5, 7 or 8, followed by 9 more digits. The total length of a cellphone number should be 11.

Changed in version 1.1: Added 7 as a valid second digit for Chinese virtual mobile ISPs.

Data

localflavor.cn.cn_provinces.CN_PROVINCE_CHOICES = (('anhui', '安徽'), ('beijing', '北京'), ('chongqing', '重庆'), ('fujian', '福建'), ('gansu', '甘肃'), ('guangdong', '广东'), ('guangxi', '广西壮族自治区'), ('guizhou', '贵州'), ('hainan', '海南'), ('hebei', '河北'), ('heilongjiang', '黑龙江'), ('henan', '河南'), ('hongkong', '香港'), ('hubei', '湖北'), ('hunan', '湖南'), ('jiangsu', '江苏'), ('jiangxi', '江西'), ('jilin', '吉林'), ('liaoning', '辽宁'), ('macao', '澳门'), ('neimongol', '内蒙古自治区'), ('ningxia', '宁夏回族自治区'), ('qinghai', '青海'), ('shaanxi', '陕西'), ('shandong', '山东'), ('shanghai', '上海'), ('shanxi', '山西'), ('sichuan', '四川'), ('taiwan', '台湾'), ('tianjin', '天津'), ('xinjiang', '新疆维吾尔自治区'), ('xizang', '西藏自治区'), ('yunnan', '云南'), ('zhejiang', '浙江'))

An alphabetical list of provinces for use as choices in a formfield. http://en.wikipedia.org/wiki/ISO_3166-2:CN http://en.wikipedia.org/wiki/Province_%28China%29 http://en.wikipedia.org/wiki/Direct-controlled_municipality http://en.wikipedia.org/wiki/Autonomous_regions_of_China

Colombia (co)

Forms

Colombian-specific form helpers.

class localflavor.co.forms.CODepartmentSelect(attrs=None)[source]

A Select widget that uses a list of Colombian states as its choices.

Data

localflavor.co.co_departments.DEPARTMENT_CHOICES = (('AMA', 'Amazonas'), ('ANT', 'Antioquia'), ('ARA', 'Arauca'), ('ATL', 'Atlántico'), ('DC', 'Bogotá'), ('BOL', 'Bolívar'), ('BOY', 'Boyacá'), ('CAL', 'Caldas'), ('CAQ', 'Caquetá'), ('CAS', 'Casanare'), ('CAU', 'Cauca'), ('CES', 'Cesar'), ('CHO', 'Chocó'), ('COR', 'Córdoba'), ('CUN', 'Cundinamarca'), ('GUA', 'Guainía'), ('GUV', 'Guaviare'), ('HUI', 'Huila'), ('LAG', 'La Guajira'), ('MAG', 'Magdalena'), ('MET', 'Meta'), ('NAR', 'Nariño'), ('NSA', 'Norte de Santander'), ('PUT', 'Putumayo'), ('QUI', 'Quindío'), ('RIS', 'Risaralda'), ('SAP', 'San Andrés and Providencia'), ('SAN', 'Santander'), ('SUC', 'Sucre'), ('TOL', 'Tolima'), ('VAC', 'Valle del Cauca'), ('VAU', 'Vaupés'), ('VID', 'Vichada'))

A list of Colombian departaments as choices in a formfield.

Czech Republic (cz)

Forms

Czech-specific form helpers

class localflavor.cz.forms.CZBirthNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Czech birth number form field.

class localflavor.cz.forms.CZICNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Czech IC number form field.

class localflavor.cz.forms.CZPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as Czech postal code. Valid form is XXXXX or XXX XX, where X represents integer.

clean(value)[source]

Validates the input and returns a string that contains only numbers. Returns an empty string for empty values.

class localflavor.cz.forms.CZRegionSelect(attrs=None)[source]

A select widget widget with list of Czech regions as choices.

Data

localflavor.cz.cz_regions.REGION_CHOICES = (('PR', 'Prague'), ('CE', 'Central Bohemian Region'), ('SO', 'South Bohemian Region'), ('PI', 'Pilsen Region'), ('CA', 'Carlsbad Region'), ('US', 'Usti Region'), ('LB', 'Liberec Region'), ('HK', 'Hradec Region'), ('PA', 'Pardubice Region'), ('VY', 'Vysocina Region'), ('SM', 'South Moravian Region'), ('OL', 'Olomouc Region'), ('ZL', 'Zlin Region'), ('MS', 'Moravian-Silesian Region'))

Czech regions, translations get from http://www.crwflags.com/fotw/Flags/cz-re.html

Germany (de)

Forms

DE-specific Form helpers.

class localflavor.de.forms.DEIdentityCardNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A German identity card number.

Checks the following rules to determine whether the number is valid:

  • Conforms to the XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.
  • No group consists entirely of zeroes.
  • Included checksums match calculated checksums

Algorithm is documented at http://de.wikipedia.org/wiki/Personalausweis

class localflavor.de.forms.DEStateSelect(attrs=None)[source]

A Select widget that uses a list of DE states as its choices.

class localflavor.de.forms.DEZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a German zip code.

Valid zip codes consist of five digits.

Data

localflavor.de.de_states.STATE_CHOICES = (('BW', 'Baden-Wuerttemberg'), ('BY', 'Bavaria'), ('BE', 'Berlin'), ('BB', 'Brandenburg'), ('HB', 'Bremen'), ('HH', 'Hamburg'), ('HE', 'Hessen'), ('MV', 'Mecklenburg-Western Pomerania'), ('NI', 'Lower Saxony'), ('NW', 'North Rhine-Westphalia'), ('RP', 'Rhineland-Palatinate'), ('SL', 'Saarland'), ('SN', 'Saxony'), ('ST', 'Saxony-Anhalt'), ('SH', 'Schleswig-Holstein'), ('TH', 'Thuringia'))

An alphabetical list of states

Denmark (dk)

New in version 1.1.

Forms

Denmark specific Form helpers.

class localflavor.dk.forms.DKMunicipalitySelect(attrs=None, *args, **kwargs)[source]

A Select widget that uses a list of Danish municipalities (kommuner) as its choices.

class localflavor.dk.forms.DKPhoneNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

Field with phone number validation. Requires a phone number with 8 digits and optional country code

class localflavor.dk.forms.DKPostalCodeField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

An Input widget that uses a list of Danish postal codes as valid input.

Data

localflavor.dk.dk_postalcodes.DK_POSTALCODES = (('0555', 'Scanning'), ('0800', 'Høje Taastrup'), ('0877', 'København C'), ('0892', 'Sjælland USF P'), ('0893', 'Sjælland USF B'), ('0894', 'Udbetaling'), ('0897', 'eBrevsprækken'), ('0899', 'Kommuneservice'), ('0900', 'København C'), ('0910', 'København C'), ('0917', 'Københavns Pakkecenter'), ('0918', 'Københavns Pakke BRC'), ('0919', 'Returprint BRC'), ('0929', 'København C'), ('0960', 'Internationalt Postcenter'), ('0999', 'København C'), ('1000', 'København K'), ('1001', 'København K'), ('1002', 'København K'), ('1003', 'København K'), ('1004', 'København K'), ('1005', 'København K'), ('1006', 'København K'), ('1007', 'København K'), ('1008', 'København K'), ('1009', 'København K'), ('1010', 'København K'), ('1011', 'København K'), ('1012', 'København K'), ('1013', 'København K'), ('1014', 'København K'), ('1015', 'København K'), ('1016', 'København K'), ('1017', 'København K'), ('1018', 'København K'), ('1019', 'København K'), ('1020', 'København K'), ('1021', 'København K'), ('1022', 'København K'), ('1023', 'København K'), ('1024', 'København K'), ('1025', 'København K'), ('1026', 'København K'), ('1045', 'København K'), ('1050', 'København K'), ('1051', 'København K'), ('1052', 'København K'), ('1053', 'København K'), ('1054', 'København K'), ('1055', 'København K'), ('1055', 'København K'), ('1056', 'København K'), ('1057', 'København K'), ('1058', 'København K'), ('1059', 'København K'), ('1060', 'København K'), ('1061', 'København K'), ('1062', 'København K'), ('1063', 'København K'), ('1064', 'København K'), ('1065', 'København K'), ('1066', 'København K'), ('1067', 'København K'), ('1068', 'København K'), ('1069', 'København K'), ('1070', 'København K'), ('1071', 'København K'), ('1072', 'København K'), ('1073', 'København K'), ('1074', 'København K'), ('1092', 'København K'), ('1093', 'København K'), ('1095', 'København K'), ('1098', 'København K'), ('1100', 'København K'), ('1101', 'København K'), ('1102', 'København K'), ('1103', 'København K'), ('1104', 'København K'), ('1105', 'København K'), ('1106', 'København K'), ('1107', 'København K'), ('1110', 'København K'), ('1111', 'København K'), ('1112', 'København K'), ('1113', 'København K'), ('1114', 'København K'), ('1115', 'København K'), ('1116', 'København K'), ('1117', 'København K'), ('1118', 'København K'), ('1119', 'København K'), ('1120', 'København K'), ('1121', 'København K'), ('1122', 'København K'), ('1123', 'København K'), ('1124', 'København K'), ('1125', 'København K'), ('1126', 'København K'), ('1127', 'København K'), ('1128', 'København K'), ('1129', 'København K'), ('1130', 'København K'), ('1131', 'København K'), ('1140', 'København K'), ('1147', 'København K'), ('1148', 'København K'), ('1150', 'København K'), ('1151', 'København K'), ('1152', 'København K'), ('1153', 'København K'), ('1154', 'København K'), ('1155', 'København K'), ('1156', 'København K'), ('1157', 'København K'), ('1158', 'København K'), ('1159', 'København K'), ('1160', 'København K'), ('1161', 'København K'), ('1162', 'København K'), ('1163', 'København K'), ('1164', 'København K'), ('1165', 'København K'), ('1165', 'København K'), ('1166', 'København K'), ('1167', 'København K'), ('1168', 'København K'), ('1169', 'København K'), ('1170', 'København K'), ('1171', 'København K'), ('1172', 'København K'), ('1173', 'København K'), ('1174', 'København K'), ('1175', 'København K'), ('1200', 'København K'), ('1201', 'København K'), ('1202', 'København K'), ('1203', 'København K'), ('1204', 'København K'), ('1205', 'København K'), ('1206', 'København K'), ('1207', 'København K'), ('1208', 'København K'), ('1209', 'København K'), ('1210', 'København K'), ('1211', 'København K'), ('1212', 'København K'), ('1213', 'København K'), ('1214', 'København K'), ('1215', 'København K'), ('1216', 'København K'), ('1217', 'København K'), ('1218', 'København K'), ('1218', 'København K'), ('1218', 'København K'), ('1218', 'København K'), ('1218', 'København K'), ('1218', 'København K'), ('1219', 'København K'), ('1220', 'København K'), ('1221', 'København K'), ('1240', 'København K'), ('1250', 'København K'), ('1251', 'København K'), ('1252', 'København K'), ('1253', 'København K'), ('1254', 'København K'), ('1255', 'København K'), ('1256', 'København K'), ('1257', 'København K'), ('1258', 'København K'), ('1259', 'København K'), ('1259', 'København K'), ('1260', 'København K'), ('1261', 'København K'), ('1263', 'København K'), ('1263', 'København K'), ('1264', 'København K'), ('1265', 'København K'), ('1266', 'København K'), ('1267', 'København K'), ('1268', 'København K'), ('1270', 'København K'), ('1271', 'København K'), ('1291', 'København K'), ('1300', 'København K'), ('1301', 'København K'), ('1302', 'København K'), ('1303', 'København K'), ('1304', 'København K'), ('1306', 'København K'), ('1307', 'København K'), ('1307', 'København K'), ('1308', 'København K'), ('1309', 'København K'), ('1310', 'København K'), ('1311', 'København K'), ('1312', 'København K'), ('1313', 'København K'), ('1314', 'København K'), ('1315', 'København K'), ('1316', 'København K'), ('1317', 'København K'), ('1318', 'København K'), ('1319', 'København K'), ('1320', 'København K'), ('1321', 'København K'), ('1322', 'København K'), ('1323', 'København K'), ('1324', 'København K'), ('1325', 'København K'), ('1326', 'København K'), ('1327', 'København K'), ('1328', 'København K'), ('1329', 'København K'), ('1349', 'København K'), ('1350', 'København K'), ('1352', 'København K'), ('1353', 'København K'), ('1354', 'København K'), ('1355', 'København K'), ('1356', 'København K'), ('1357', 'København K'), ('1358', 'København K'), ('1359', 'København K'), ('1359', 'København K'), ('1360', 'København K'), ('1361', 'København K'), ('1361', 'København K'), ('1362', 'København K'), ('1363', 'København K'), ('1364', 'København K'), ('1365', 'København K'), ('1366', 'København K'), ('1367', 'København K'), ('1368', 'København K'), ('1369', 'København K'), ('1370', 'København K'), ('1371', 'København K'), ('1400', 'København K'), ('1400', 'København K'), ('1401', 'København K'), ('1402', 'København K'), ('1402', 'København K'), ('1402', 'København K'), ('1402', 'København K'), ('1402', 'København K'), ('1403', 'København K'), ('1404', 'København K'), ('1406', 'København K'), ('1407', 'København K'), ('1408', 'København K'), ('1409', 'København K'), ('1410', 'København K'), ('1411', 'København K'), ('1411', 'København K'), ('1412', 'København K'), ('1413', 'København K'), ('1414', 'København K'), ('1415', 'København K'), ('1416', 'København K'), ('1417', 'København K'), ('1418', 'København K'), ('1419', 'København K'), ('1420', 'København K'), ('1421', 'København K'), ('1422', 'København K'), ('1423', 'København K'), ('1424', 'København K'), ('1425', 'København K'), ('1426', 'København K'), ('1427', 'København K'), ('1428', 'København K'), ('1429', 'København K'), ('1430', 'København K'), ('1431', 'København K'), ('1432', 'København K'), ('1432', 'København K'), ('1432', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1433', 'København K'), ('1434', 'København K'), ('1435', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1436', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1437', 'København K'), ('1438', 'København K'), ('1438', 'København K'), ('1438', 'København K'), ('1438', 'København K'), ('1438', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1439', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1440', 'København K'), ('1441', 'København K'), ('1441', 'København K'), ('1441', 'København K'), ('1448', 'København K'), ('1450', 'København K'), ('1451', 'København K'), ('1452', 'København K'), ('1453', 'København K'), ('1454', 'København K'), ('1455', 'København K'), ('1456', 'København K'), ('1457', 'København K'), ('1458', 'København K'), ('1459', 'København K'), ('1460', 'København K'), ('1461', 'København K'), ('1462', 'København K'), ('1463', 'København K'), ('1464', 'København K'), ('1465', 'København K'), ('1466', 'København K'), ('1467', 'København K'), ('1468', 'København K'), ('1470', 'København K'), ('1471', 'København K'), ('1472', 'København K'), ('1473', 'København K'), ('1500', 'København V'), ('1501', 'København V'), ('1502', 'København V'), ('1503', 'København V'), ('1504', 'København V'), ('1505', 'København V'), ('1506', 'København V'), ('1507', 'København V'), ('1508', 'København V'), ('1509', 'København V'), ('1510', 'København V'), ('1512', 'Returpost'), ('1513', 'Centraltastning'), ('1532', 'København V'), ('1533', 'København V'), ('1550', 'København V'), ('1550', 'København V'), ('1551', 'København V'), ('1552', 'København V'), ('1553', 'København V'), ('1553', 'København V'), ('1554', 'København V'), ('1555', 'København V'), ('1556', 'København V'), ('1557', 'København V'), ('1558', 'København V'), ('1559', 'København V'), ('1560', 'København V'), ('1561', 'København V'), ('1561', 'København V'), ('1562', 'København V'), ('1563', 'København V'), ('1564', 'København V'), ('1566', 'København V'), ('1567', 'København V'), ('1568', 'København V'), ('1569', 'København V'), ('1570', 'København V'), ('1570', 'København V'), ('1571', 'København V'), ('1572', 'København V'), ('1573', 'København V'), ('1574', 'København V'), ('1575', 'København V'), ('1576', 'København V'), ('1577', 'København V'), ('1577', 'København V'), ('1577', 'København V'), ('1592', 'København V'), ('1599', 'København V'), ('1600', 'København V'), ('1601', 'København V'), ('1602', 'København V'), ('1603', 'København V'), ('1604', 'København V'), ('1605', 'København V'), ('1606', 'København V'), ('1607', 'København V'), ('1608', 'København V'), ('1609', 'København V'), ('1610', 'København V'), ('1611', 'København V'), ('1612', 'København V'), ('1613', 'København V'), ('1614', 'København V'), ('1615', 'København V'), ('1616', 'København V'), ('1617', 'København V'), ('1618', 'København V'), ('1619', 'København V'), ('1620', 'København V'), ('1620', 'København V'), ('1621', 'København V'), ('1622', 'København V'), ('1623', 'København V'), ('1624', 'København V'), ('1630', 'København V'), ('1631', 'København V'), ('1632', 'København V'), ('1633', 'København V'), ('1634', 'København V'), ('1635', 'København V'), ('1640', 'København V'), ('1650', 'København V'), ('1651', 'København V'), ('1652', 'København V'), ('1653', 'København V'), ('1654', 'København V'), ('1655', 'København V'), ('1656', 'København V'), ('1657', 'København V'), ('1658', 'København V'), ('1659', 'København V'), ('1660', 'København V'), ('1660', 'København V'), ('1661', 'København V'), ('1662', 'København V'), ('1663', 'København V'), ('1664', 'København V'), ('1665', 'København V'), ('1666', 'København V'), ('1667', 'København V'), ('1668', 'København V'), ('1669', 'København V'), ('1670', 'København V'), ('1671', 'København V'), ('1671', 'København V'), ('1672', 'København V'), ('1673', 'København V'), ('1674', 'København V'), ('1675', 'København V'), ('1676', 'København V'), ('1677', 'København V'), ('1699', 'København V'), ('1700', 'København V'), ('1701', 'København V'), ('1702', 'København V'), ('1703', 'København V'), ('1704', 'København V'), ('1705', 'København V'), ('1706', 'København V'), ('1707', 'København V'), ('1708', 'København V'), ('1709', 'København V'), ('1710', 'København V'), ('1711', 'København V'), ('1711', 'København V'), ('1712', 'København V'), ('1713', 'København V'), ('1714', 'København V'), ('1715', 'København V'), ('1716', 'København V'), ('1717', 'København V'), ('1718', 'København V'), ('1719', 'København V'), ('1720', 'København V'), ('1721', 'København V'), ('1722', 'København V'), ('1723', 'København V'), ('1724', 'København V'), ('1725', 'København V'), ('1726', 'København V'), ('1727', 'København V'), ('1728', 'København V'), ('1729', 'København V'), ('1730', 'København V'), ('1731', 'København V'), ('1732', 'København V'), ('1733', 'København V'), ('1734', 'København V'), ('1735', 'København V'), ('1736', 'København V'), ('1737', 'København V'), ('1738', 'København V'), ('1739', 'København V'), ('1749', 'København V'), ('1750', 'København V'), ('1751', 'København V'), ('1752', 'København V'), ('1753', 'København V'), ('1754', 'København V'), ('1755', 'København V'), ('1756', 'København V'), ('1757', 'København V'), ('1758', 'København V'), ('1759', 'København V'), ('1760', 'København V'), ('1761', 'København V'), ('1762', 'København V'), ('1763', 'København V'), ('1764', 'København V'), ('1765', 'København V'), ('1766', 'København V'), ('1770', 'København V'), ('1771', 'København V'), ('1772', 'København V'), ('1773', 'København V'), ('1774', 'København V'), ('1775', 'København V'), ('1777', 'København V'), ('1780', 'København V'), ('1782', 'København V'), ('1785', 'København V'), ('1786', 'København V'), ('1787', 'København V'), ('1790', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1799', 'København V'), ('1800', 'Frederiksberg C'), ('1801', 'Frederiksberg C'), ('1802', 'Frederiksberg C'), ('1803', 'Frederiksberg C'), ('1804', 'Frederiksberg C'), ('1805', 'Frederiksberg C'), ('1806', 'Frederiksberg C'), ('1807', 'Frederiksberg C'), ('1808', 'Frederiksberg C'), ('1809', 'Frederiksberg C'), ('1810', 'Frederiksberg C'), ('1811', 'Frederiksberg C'), ('1812', 'Frederiksberg C'), ('1813', 'Frederiksberg C'), ('1814', 'Frederiksberg C'), ('1815', 'Frederiksberg C'), ('1816', 'Frederiksberg C'), ('1817', 'Frederiksberg C'), ('1818', 'Frederiksberg C'), ('1819', 'Frederiksberg C'), ('1820', 'Frederiksberg C'), ('1822', 'Frederiksberg C'), ('1823', 'Frederiksberg C'), ('1824', 'Frederiksberg C'), ('1825', 'Frederiksberg C'), ('1826', 'Frederiksberg C'), ('1827', 'Frederiksberg C'), ('1828', 'Frederiksberg C'), ('1829', 'Frederiksberg C'), ('1835', 'Frederiksberg C'), ('1850', 'Frederiksberg C'), ('1851', 'Frederiksberg C'), ('1852', 'Frederiksberg C'), ('1853', 'Frederiksberg C'), ('1854', 'Frederiksberg C'), ('1855', 'Frederiksberg C'), ('1856', 'Frederiksberg C'), ('1857', 'Frederiksberg C'), ('1860', 'Frederiksberg C'), ('1861', 'Frederiksberg C'), ('1862', 'Frederiksberg C'), ('1863', 'Frederiksberg C'), ('1864', 'Frederiksberg C'), ('1865', 'Frederiksberg C'), ('1866', 'Frederiksberg C'), ('1867', 'Frederiksberg C'), ('1868', 'Frederiksberg C'), ('1870', 'Frederiksberg C'), ('1871', 'Frederiksberg C'), ('1872', 'Frederiksberg C'), ('1873', 'Frederiksberg C'), ('1874', 'Frederiksberg C'), ('1875', 'Frederiksberg C'), ('1876', 'Frederiksberg C'), ('1877', 'Frederiksberg C'), ('1878', 'Frederiksberg C'), ('1879', 'Frederiksberg C'), ('1900', 'Frederiksberg C'), ('1901', 'Frederiksberg C'), ('1902', 'Frederiksberg C'), ('1903', 'Frederiksberg C'), ('1904', 'Frederiksberg C'), ('1905', 'Frederiksberg C'), ('1906', 'Frederiksberg C'), ('1908', 'Frederiksberg C'), ('1909', 'Frederiksberg C'), ('1910', 'Frederiksberg C'), ('1911', 'Frederiksberg C'), ('1912', 'Frederiksberg C'), ('1913', 'Frederiksberg C'), ('1914', 'Frederiksberg C'), ('1915', 'Frederiksberg C'), ('1916', 'Frederiksberg C'), ('1917', 'Frederiksberg C'), ('1920', 'Frederiksberg C'), ('1921', 'Frederiksberg C'), ('1922', 'Frederiksberg C'), ('1923', 'Frederiksberg C'), ('1924', 'Frederiksberg C'), ('1925', 'Frederiksberg C'), ('1926', 'Frederiksberg C'), ('1927', 'Frederiksberg C'), ('1928', 'Frederiksberg C'), ('1931', 'Frederiksberg C'), ('1950', 'Frederiksberg C'), ('1951', 'Frederiksberg C'), ('1952', 'Frederiksberg C'), ('1953', 'Frederiksberg C'), ('1954', 'Frederiksberg C'), ('1955', 'Frederiksberg C'), ('1956', 'Frederiksberg C'), ('1957', 'Frederiksberg C'), ('1958', 'Frederiksberg C'), ('1959', 'Frederiksberg C'), ('1960', 'Frederiksberg C'), ('1961', 'Frederiksberg C'), ('1962', 'Frederiksberg C'), ('1963', 'Frederiksberg C'), ('1964', 'Frederiksberg C'), ('1965', 'Frederiksberg C'), ('1966', 'Frederiksberg C'), ('1967', 'Frederiksberg C'), ('1970', 'Frederiksberg C'), ('1971', 'Frederiksberg C'), ('1972', 'Frederiksberg C'), ('1973', 'Frederiksberg C'), ('1974', 'Frederiksberg C'), ('2000', 'Frederiksberg'), ('2100', 'København Ø'), ('2150', 'Nordhavn'), ('2200', 'København N'), ('2300', 'København S'), ('2400', 'København NV'), ('2450', 'København SV'), ('2500', 'Valby'), ('2600', 'Glostrup'), ('2605', 'Brøndby'), ('2610', 'Rødovre'), ('2620', 'Albertslund'), ('2625', 'Vallensbæk'), ('2630', 'Taastrup'), ('2635', 'Ishøj'), ('2640', 'Hedehusene'), ('2650', 'Hvidovre'), ('2660', 'Brøndby Strand'), ('2665', 'Vallensbæk Strand'), ('2670', 'Greve'), ('2680', 'Solrød Strand'), ('2690', 'Karlslunde'), ('2700', 'Brønshøj'), ('2720', 'Vanløse'), ('2730', 'Herlev'), ('2740', 'Skovlunde'), ('2750', 'Ballerup'), ('2760', 'Måløv'), ('2765', 'Smørum'), ('2770', 'Kastrup'), ('2791', 'Dragør'), ('2800', 'Kongens Lyngby'), ('2820', 'Gentofte'), ('2830', 'Virum'), ('2840', 'Holte'), ('2850', 'Nærum'), ('2860', 'Søborg'), ('2870', 'Dyssegård'), ('2880', 'Bagsværd'), ('2900', 'Hellerup'), ('2920', 'Charlottenlund'), ('2930', 'Klampenborg'), ('2942', 'Skodsborg'), ('2950', 'Vedbæk'), ('2960', 'Rungsted Kyst'), ('2970', 'Hørsholm'), ('2980', 'Kokkedal'), ('2990', 'Nivå'), ('3000', 'Helsingør'), ('3050', 'Humlebæk'), ('3060', 'Espergærde'), ('3070', 'Snekkersten'), ('3080', 'Tikøb'), ('3100', 'Hornbæk'), ('3120', 'Dronningmølle'), ('3140', 'Ålsgårde'), ('3150', 'Hellebæk'), ('3200', 'Helsinge'), ('3210', 'Vejby'), ('3220', 'Tisvildeleje'), ('3230', 'Græsted'), ('3250', 'Gilleleje'), ('3300', 'Frederiksværk'), ('3310', 'Ølsted'), ('3320', 'Skævinge'), ('3330', 'Gørløse'), ('3360', 'Liseleje'), ('3370', 'Melby'), ('3390', 'Hundested'), ('3400', 'Hillerød'), ('3450', 'Allerød'), ('3460', 'Birkerød'), ('3480', 'Fredensborg'), ('3490', 'Kvistgård'), ('3500', 'Værløse'), ('3520', 'Farum'), ('3540', 'Lynge'), ('3550', 'Slangerup'), ('3600', 'Frederikssund'), ('3630', 'Jægerspris'), ('3650', 'Ølstykke'), ('3660', 'Stenløse'), ('3670', 'Veksø Sjælland'), ('3700', 'Rønne'), ('3720', 'Aakirkeby'), ('3730', 'Nexø'), ('3740', 'Svaneke'), ('3751', 'Østermarie'), ('3760', 'Gudhjem'), ('3770', 'Allinge'), ('3782', 'Klemensker'), ('3790', 'Hasle'), ('4000', 'Roskilde'), ('4030', 'Tune'), ('4040', 'Jyllinge'), ('4050', 'Skibby'), ('4060', 'Kirke Såby'), ('4070', 'Kirke Hyllinge'), ('4100', 'Ringsted'), ('4129', 'Ringsted'), ('4130', 'Viby Sjælland'), ('4140', 'Borup'), ('4160', 'Herlufmagle'), ('4171', 'Glumsø'), ('4173', 'Fjenneslev'), ('4174', 'Jystrup Midtsj'), ('4180', 'Sorø'), ('4190', 'Munke Bjergby'), ('4200', 'Slagelse'), ('4220', 'Korsør'), ('4230', 'Skælskør'), ('4241', 'Vemmelev'), ('4242', 'Boeslunde'), ('4243', 'Rude'), ('4250', 'Fuglebjerg'), ('4261', 'Dalmose'), ('4262', 'Sandved'), ('4270', 'Høng'), ('4281', 'Gørlev'), ('4291', 'Ruds Vedby'), ('4293', 'Dianalund'), ('4295', 'Stenlille'), ('4296', 'Nyrup'), ('4300', 'Holbæk'), ('4320', 'Lejre'), ('4330', 'Hvalsø'), ('4340', 'Tølløse'), ('4350', 'Ugerløse'), ('4360', 'Kirke Eskilstrup'), ('4370', 'Store Merløse'), ('4390', 'Vipperød'), ('4400', 'Kalundborg'), ('4420', 'Regstrup'), ('4440', 'Mørkøv'), ('4450', 'Jyderup'), ('4460', 'Snertinge'), ('4470', 'Svebølle'), ('4480', 'Store Fuglede'), ('4490', 'Jerslev Sjælland'), ('4500', 'Nykøbing Sj'), ('4520', 'Svinninge'), ('4532', 'Gislinge'), ('4534', 'Hørve'), ('4540', 'Fårevejle'), ('4550', 'Asnæs'), ('4560', 'Vig'), ('4571', 'Grevinge'), ('4572', 'Nørre Asmindrup'), ('4573', 'Højby'), ('4581', 'Rørvig'), ('4583', 'Sjællands Odde'), ('4591', 'Føllenslev'), ('4592', 'Sejerø'), ('4593', 'Eskebjerg'), ('4600', 'Køge'), ('4621', 'Gadstrup'), ('4622', 'Havdrup'), ('4623', 'Lille Skensved'), ('4632', 'Bjæverskov'), ('4640', 'Faxe'), ('4652', 'Hårlev'), ('4653', 'Karise'), ('4654', 'Faxe Ladeplads'), ('4660', 'Store Heddinge'), ('4671', 'Strøby'), ('4672', 'Klippinge'), ('4673', 'Rødvig Stevns'), ('4681', 'Herfølge'), ('4682', 'Tureby'), ('4683', 'Rønnede'), ('4684', 'Holmegaard'), ('4690', 'Haslev'), ('4700', 'Næstved'), ('4720', 'Præstø'), ('4733', 'Tappernøje'), ('4735', 'Mern'), ('4736', 'Karrebæksminde'), ('4750', 'Lundby'), ('4760', 'Vordingborg'), ('4771', 'Kalvehave'), ('4772', 'Langebæk'), ('4773', 'Stensved'), ('4780', 'Stege'), ('4791', 'Borre'), ('4792', 'Askeby'), ('4793', 'Bogø By'), ('4800', 'Nykøbing F'), ('4840', 'Nørre Alslev'), ('4850', 'Stubbekøbing'), ('4862', 'Guldborg'), ('4863', 'Eskilstrup'), ('4871', 'Horbelev'), ('4872', 'Idestrup'), ('4873', 'Væggerløse'), ('4874', 'Gedser'), ('4880', 'Nysted'), ('4891', 'Toreby L'), ('4892', 'Kettinge'), ('4894', 'Øster Ulslev'), ('4895', 'Errindlev'), ('4900', 'Nakskov'), ('4912', 'Harpelunde'), ('4913', 'Horslunde'), ('4920', 'Søllested'), ('4930', 'Maribo'), ('4941', 'Bandholm'), ('4943', 'Torrig L'), ('4944', 'Fejø'), ('4951', 'Nørreballe'), ('4952', 'Stokkemarke'), ('4953', 'Vesterborg'), ('4960', 'Holeby'), ('4970', 'Rødby'), ('4983', 'Dannemare'), ('4990', 'Sakskøbing'), ('4992', 'Midtsjælland USF P'), ('5000', 'Odense C'), ('5029', 'Odense C'), ('5100', 'Odense C'), ('5200', 'Odense V'), ('5210', 'Odense NV'), ('5220', 'Odense SØ'), ('5230', 'Odense M'), ('5240', 'Odense NØ'), ('5250', 'Odense SV'), ('5260', 'Odense S'), ('5270', 'Odense N'), ('5290', 'Marslev'), ('5300', 'Kerteminde'), ('5320', 'Agedrup'), ('5330', 'Munkebo'), ('5350', 'Rynkeby'), ('5370', 'Mesinge'), ('5380', 'Dalby'), ('5390', 'Martofte'), ('5400', 'Bogense'), ('5450', 'Otterup'), ('5462', 'Morud'), ('5463', 'Harndrup'), ('5464', 'Brenderup Fyn'), ('5466', 'Asperup'), ('5471', 'Søndersø'), ('5474', 'Veflinge'), ('5485', 'Skamby'), ('5491', 'Blommenslyst'), ('5492', 'Vissenbjerg'), ('5500', 'Middelfart'), ('5540', 'Ullerslev'), ('5550', 'Langeskov'), ('5560', 'Aarup'), ('5580', 'Nørre Aaby'), ('5591', 'Gelsted'), ('5592', 'Ejby'), ('5600', 'Faaborg'), ('5610', 'Assens'), ('5620', 'Glamsbjerg'), ('5631', 'Ebberup'), ('5642', 'Millinge'), ('5672', 'Broby'), ('5683', 'Haarby'), ('5690', 'Tommerup'), ('5700', 'Svendborg'), ('5750', 'Ringe'), ('5762', 'Vester Skerninge'), ('5771', 'Stenstrup'), ('5772', 'Kværndrup'), ('5792', 'Årslev'), ('5800', 'Nyborg'), ('5853', 'Ørbæk'), ('5854', 'Gislev'), ('5856', 'Ryslinge'), ('5863', 'Ferritslev Fyn'), ('5871', 'Frørup'), ('5874', 'Hesselager'), ('5881', 'Skårup Fyn'), ('5882', 'Vejstrup'), ('5883', 'Oure'), ('5884', 'Gudme'), ('5892', 'Gudbjerg Sydfyn'), ('5900', 'Rudkøbing'), ('5932', 'Humble'), ('5935', 'Bagenkop'), ('5953', 'Tranekær'), ('5960', 'Marstal'), ('5970', 'Ærøskøbing'), ('5985', 'Søby Ærø'), ('6000', 'Kolding'), ('6040', 'Egtved'), ('6051', 'Almind'), ('6052', 'Viuf'), ('6064', 'Jordrup'), ('6070', 'Christiansfeld'), ('6091', 'Bjert'), ('6092', 'Sønder Stenderup'), ('6093', 'Sjølund'), ('6094', 'Hejls'), ('6100', 'Haderslev'), ('6200', 'Aabenraa'), ('6230', 'Rødekro'), ('6240', 'Løgumkloster'), ('6261', 'Bredebro'), ('6270', 'Tønder'), ('6280', 'Højer'), ('6300', 'Gråsten'), ('6310', 'Broager'), ('6320', 'Egernsund'), ('6330', 'Padborg'), ('6340', 'Kruså'), ('6360', 'Tinglev'), ('6372', 'Bylderup-Bov'), ('6392', 'Bolderslev'), ('6400', 'Sønderborg'), ('6430', 'Nordborg'), ('6440', 'Augustenborg'), ('6470', 'Sydals'), ('6500', 'Vojens'), ('6510', 'Gram'), ('6520', 'Toftlund'), ('6534', 'Agerskov'), ('6535', 'Branderup J'), ('6541', 'Bevtoft'), ('6560', 'Sommersted'), ('6580', 'Vamdrup'), ('6600', 'Vejen'), ('6621', 'Gesten'), ('6622', 'Bække'), ('6623', 'Vorbasse'), ('6630', 'Rødding'), ('6640', 'Lunderskov'), ('6650', 'Brørup'), ('6660', 'Lintrup'), ('6670', 'Holsted'), ('6682', 'Hovborg'), ('6683', 'Føvling'), ('6690', 'Gørding'), ('6700', 'Esbjerg'), ('6701', 'Esbjerg'), ('6705', 'Esbjerg Ø'), ('6710', 'Esbjerg V'), ('6715', 'Esbjerg N'), ('6720', 'Fanø'), ('6731', 'Tjæreborg'), ('6740', 'Bramming'), ('6752', 'Glejbjerg'), ('6753', 'Agerbæk'), ('6760', 'Ribe'), ('6771', 'Gredstedbro'), ('6780', 'Skærbæk'), ('6792', 'Rømø'), ('6800', 'Varde'), ('6818', 'Årre'), ('6823', 'Ansager'), ('6830', 'Nørre Nebel'), ('6840', 'Oksbøl'), ('6851', 'Janderup Vestj'), ('6852', 'Billum'), ('6853', 'Vejers Strand'), ('6854', 'Henne'), ('6855', 'Outrup'), ('6857', 'Blåvand'), ('6862', 'Tistrup'), ('6870', 'Ølgod'), ('6880', 'Tarm'), ('6893', 'Hemmet'), ('6900', 'Skjern'), ('6920', 'Videbæk'), ('6933', 'Kibæk'), ('6940', 'Lem St'), ('6950', 'Ringkøbing'), ('6960', 'Hvide Sande'), ('6971', 'Spjald'), ('6973', 'Ørnhøj'), ('6980', 'Tim'), ('6990', 'Ulfborg'), ('7000', 'Fredericia'), ('7007', 'Fredericia'), ('7017', 'Taulov Pakkecenter'), ('7018', 'Pakker TLP'), ('7029', 'Fredericia'), ('7080', 'Børkop'), ('7100', 'Vejle'), ('7120', 'Vejle Øst'), ('7130', 'Juelsminde'), ('7140', 'Stouby'), ('7150', 'Barrit'), ('7160', 'Tørring'), ('7171', 'Uldum'), ('7173', 'Vonge'), ('7182', 'Bredsten'), ('7183', 'Randbøl'), ('7184', 'Vandel'), ('7190', 'Billund'), ('7200', 'Grindsted'), ('7250', 'Hejnsvig'), ('7260', 'Sønder Omme'), ('7270', 'Stakroge'), ('7280', 'Sønder Felding'), ('7300', 'Jelling'), ('7321', 'Gadbjerg'), ('7323', 'Give'), ('7330', 'Brande'), ('7361', 'Ejstrupholm'), ('7362', 'Hampen'), ('7400', 'Herning'), ('7429', 'Herning'), ('7430', 'Ikast'), ('7441', 'Bording'), ('7442', 'Engesvang'), ('7451', 'Sunds'), ('7470', 'Karup J'), ('7480', 'Vildbjerg'), ('7490', 'Aulum'), ('7500', 'Holstebro'), ('7540', 'Haderup'), ('7550', 'Sørvad'), ('7560', 'Hjerm'), ('7570', 'Vemb'), ('7600', 'Struer'), ('7620', 'Lemvig'), ('7650', 'Bøvlingbjerg'), ('7660', 'Bækmarksbro'), ('7673', 'Harboøre'), ('7680', 'Thyborøn'), ('7700', 'Thisted'), ('7730', 'Hanstholm'), ('7741', 'Frøstrup'), ('7742', 'Vesløs'), ('7752', 'Snedsted'), ('7755', 'Bedsted Thy'), ('7760', 'Hurup Thy'), ('7770', 'Vestervig'), ('7790', 'Thyholm'), ('7800', 'Skive'), ('7830', 'Vinderup'), ('7840', 'Højslev'), ('7850', 'Stoholm Jyll'), ('7860', 'Spøttrup'), ('7870', 'Roslev'), ('7884', 'Fur'), ('7900', 'Nykøbing M'), ('7950', 'Erslev'), ('7960', 'Karby'), ('7970', 'Redsted M'), ('7980', 'Vils'), ('7990', 'Øster Assels'), ('7992', 'Sydjylland/Fyn USF P'), ('7993', 'Sydjylland/Fyn USF B'), ('7996', 'Fakturaservice'), ('7997', 'Fakturascanning'), ('7998', 'Statsservice'), ('7999', 'Kommunepost'), ('8000', 'Aarhus C'), ('8100', 'Aarhus C'), ('8200', 'Aarhus N'), ('8210', 'Aarhus V'), ('8220', 'Brabrand'), ('8229', 'Risskov Ø'), ('8230', 'Åbyhøj'), ('8240', 'Risskov'), ('8245', 'Risskov Ø'), ('8250', 'Egå'), ('8260', 'Viby J'), ('8270', 'Højbjerg'), ('8300', 'Odder'), ('8305', 'Samsø'), ('8310', 'Tranbjerg J'), ('8320', 'Mårslet'), ('8330', 'Beder'), ('8340', 'Malling'), ('8350', 'Hundslund'), ('8355', 'Solbjerg'), ('8361', 'Hasselager'), ('8362', 'Hørning'), ('8370', 'Hadsten'), ('8380', 'Trige'), ('8381', 'Tilst'), ('8382', 'Hinnerup'), ('8400', 'Ebeltoft'), ('8410', 'Rønde'), ('8420', 'Knebel'), ('8444', 'Balle'), ('8450', 'Hammel'), ('8462', 'Harlev J'), ('8464', 'Galten'), ('8471', 'Sabro'), ('8472', 'Sporup'), ('8500', 'Grenaa'), ('8520', 'Lystrup'), ('8530', 'Hjortshøj'), ('8541', 'Skødstrup'), ('8543', 'Hornslet'), ('8544', 'Mørke'), ('8550', 'Ryomgård'), ('8560', 'Kolind'), ('8570', 'Trustrup'), ('8581', 'Nimtofte'), ('8585', 'Glesborg'), ('8586', 'Ørum Djurs'), ('8592', 'Anholt'), ('8600', 'Silkeborg'), ('8620', 'Kjellerup'), ('8632', 'Lemming'), ('8641', 'Sorring'), ('8643', 'Ans By'), ('8653', 'Them'), ('8654', 'Bryrup'), ('8660', 'Skanderborg'), ('8670', 'Låsby'), ('8680', 'Ry'), ('8700', 'Horsens'), ('8721', 'Daugård'), ('8722', 'Hedensted'), ('8723', 'Løsning'), ('8732', 'Hovedgård'), ('8740', 'Brædstrup'), ('8751', 'Gedved'), ('8752', 'Østbirk'), ('8762', 'Flemming'), ('8763', 'Rask Mølle'), ('8765', 'Klovborg'), ('8766', 'Nørre Snede'), ('8781', 'Stenderup'), ('8783', 'Hornsyld'), ('8800', 'Viborg'), ('8830', 'Tjele'), ('8831', 'Løgstrup'), ('8832', 'Skals'), ('8840', 'Rødkærsbro'), ('8850', 'Bjerringbro'), ('8860', 'Ulstrup'), ('8870', 'Langå'), ('8881', 'Thorsø'), ('8882', 'Fårvang'), ('8883', 'Gjern'), ('8900', 'Randers C'), ('8920', 'Randers NV'), ('8930', 'Randers NØ'), ('8940', 'Randers SV'), ('8950', 'Ørsted'), ('8960', 'Randers SØ'), ('8961', 'Allingåbro'), ('8963', 'Auning'), ('8970', 'Havndal'), ('8981', 'Spentrup'), ('8983', 'Gjerlev J'), ('8990', 'Fårup'), ('9000', 'Aalborg'), ('9029', 'Aalborg'), ('9100', 'Aalborg'), ('9200', 'Aalborg SV'), ('9210', 'Aalborg SØ'), ('9220', 'Aalborg Øst'), ('9230', 'Svenstrup J'), ('9240', 'Nibe'), ('9260', 'Gistrup'), ('9270', 'Klarup'), ('9280', 'Storvorde'), ('9293', 'Kongerslev'), ('9300', 'Sæby'), ('9310', 'Vodskov'), ('9320', 'Hjallerup'), ('9330', 'Dronninglund'), ('9340', 'Asaa'), ('9352', 'Dybvad'), ('9362', 'Gandrup'), ('9370', 'Hals'), ('9380', 'Vestbjerg'), ('9381', 'Sulsted'), ('9382', 'Tylstrup'), ('9400', 'Nørresundby'), ('9430', 'Vadum'), ('9440', 'Aabybro'), ('9460', 'Brovst'), ('9480', 'Løkken'), ('9490', 'Pandrup'), ('9492', 'Blokhus'), ('9493', 'Saltum'), ('9500', 'Hobro'), ('9510', 'Arden'), ('9520', 'Skørping'), ('9530', 'Støvring'), ('9541', 'Suldrup'), ('9550', 'Mariager'), ('9560', 'Hadsund'), ('9574', 'Bælum'), ('9575', 'Terndrup'), ('9600', 'Aars'), ('9610', 'Nørager'), ('9620', 'Aalestrup'), ('9631', 'Gedsted'), ('9632', 'Møldrup'), ('9640', 'Farsø'), ('9670', 'Løgstør'), ('9681', 'Ranum'), ('9690', 'Fjerritslev'), ('9700', 'Brønderslev'), ('9740', 'Jerslev J'), ('9750', 'Østervrå'), ('9760', 'Vrå'), ('9800', 'Hjørring'), ('9830', 'Tårs'), ('9850', 'Hirtshals'), ('9870', 'Sindal'), ('9881', 'Bindslev'), ('9900', 'Frederikshavn'), ('9940', 'Læsø'), ('9970', 'Strandby'), ('9981', 'Jerup'), ('9982', 'Ålbæk'), ('9990', 'Skagen'), ('9992', 'Jylland USF P'), ('9993', 'Jylland USF B'), ('9996', 'Fakturaservice'), ('9997', 'Fakturascanning'), ('9998', 'Borgerservice'), ('2412', 'Santa Claus/Julemanden'), ('3900', 'Nuuk'), ('3905', 'Nuussuaq'), ('3910', 'Kangerlussuaq'), ('3911', 'Sisimiut'), ('3912', 'Maniitsoq'), ('3913', 'Tasiilaq'), ('3915', 'Kulusuk'), ('3919', 'Alluitsup Paa'), ('3920', 'Qaqortoq'), ('3921', 'Narsaq'), ('3922', 'Nanortalik'), ('3923', 'Narsarsuaq'), ('3924', 'Ikerasassuaq'), ('3930', 'Kangilinnguit'), ('3932', 'Arsuk'), ('3940', 'Paamiut'), ('3950', 'Aasiaat'), ('3951', 'Qasigiannguit'), ('3952', 'Ilulissat'), ('3953', 'Qeqertarsuaq'), ('3955', 'Kangaatsiaq'), ('3961', 'Uummannaq'), ('3962', 'Upernavik'), ('3964', 'Qaarsut'), ('3970', 'Pituffik'), ('3971', 'Qaanaaq'), ('3972', 'Station Nord'), ('3980', 'Ittoqqortoormiit'), ('3982', 'Mestersvig'), ('3984', 'Danmarkshavn'), ('3985', 'Constable Pynt'), ('3992', 'Slædepatrulje Sirius'), ('100', 'Tórshavn'), ('110', 'Tórshavn'), ('160', 'Argir'), ('165', 'Argir'), ('175', 'Kirkjubøur'), ('176', 'Velbastadur'), ('177', '"Sydradalur, Streymoy"'), ('178', 'Nordradalur'), ('180', 'Kaldbak'), ('185', 'Kaldbaksbotnur'), ('186', 'Sund'), ('187', 'Hvitanes'), ('188', 'Hoyvík'), ('210', 'Sandur'), ('215', 'Sandur'), ('220', 'Skálavík'), ('230', 'Húsavík'), ('235', 'Dalur'), ('236', 'Skarvanes'), ('240', 'Skopun'), ('260', 'Skúvoy'), ('270', 'Nólsoy'), ('280', 'Hestur'), ('285', 'Koltur'), ('286', 'Stóra Dimun'), ('330', 'Stykkid'), ('335', 'Leynar'), ('336', 'Skællingur'), ('340', 'Kvívík'), ('350', 'Vestmanna'), ('355', 'Vestmanna'), ('358', 'Válur'), ('360', 'Sandavágur'), ('370', 'Midvágur'), ('375', 'Midvágur'), ('380', 'Sørvágur'), ('385', 'Vatnsoyrar'), ('386', 'Bøur'), ('387', 'Gásadalur'), ('388', 'Mykines'), ('400', 'Oyrarbakki'), ('405', 'Oyrarbakki'), ('410', 'Kollafjørdur'), ('415', 'Oyrareingir'), ('416', 'Signabøur'), ('420', 'Hósvík'), ('430', 'Hvalvík'), ('435', 'Streymnes'), ('436', 'Saksun'), ('437', 'Nesvík'), ('438', 'Langasandur'), ('440', 'Haldarsvík'), ('445', 'Tjørnuvík'), ('450', 'Oyri'), ('460', 'Nordskáli'), ('465', 'Svináir'), ('466', 'Ljósá'), ('470', 'Eidi'), ('475', 'Funningur'), ('476', 'Gjógv'), ('477', 'Funningsfjørdur'), ('478', 'Elduvík'), ('480', 'Skáli'), ('485', 'Skálafjørdur'), ('490', 'Strendur'), ('494', 'Innan Glyvur'), ('495', 'Kolbanargjógv'), ('496', 'Morskranes'), ('497', 'Selatrad'), ('510', 'Gøta'), ('511', 'Gøtugjógv'), ('512', 'Nordragøta'), ('513', 'Sydrugøta'), ('515', 'Gøta'), ('520', 'Leirvík'), ('530', 'Fuglafjørdur'), ('535', 'Fuglafjørdur'), ('600', 'Saltangará'), ('610', 'Saltangará'), ('620', 'Runavík'), ('625', 'Glyvrar'), ('626', 'Lambareidi'), ('627', 'Lambi'), ('640', 'Rituvík'), ('645', 'Æduvík'), ('650', 'Toftir'), ('655', '"Nes, Eysturoy"'), ('656', 'Saltnes'), ('660', 'Søldarfjørdur'), ('665', 'Skipanes'), ('666', 'Gøtueidi'), ('690', 'Oyndarfjørdur'), ('695', 'Hellur'), ('700', 'Klaksvík'), ('710', 'Klaksvík'), ('725', 'Nordoyri'), ('726', 'Ánir'), ('727', 'Árnafjørdur'), ('730', 'Norddepil'), ('735', 'Depil'), ('736', 'Nordtoftir'), ('737', 'Múli'), ('740', 'Hvannasund'), ('750', 'Vidareidi'), ('765', 'Svinoy'), ('766', 'Kirkja'), ('767', 'Hattarvík'), ('780', 'Kunoy'), ('785', 'Haraldssund'), ('795', '"Sydradalur, Kalsoy"'), ('796', 'Húsar'), ('797', 'Mikladalur'), ('798', 'Trøllanes'), ('800', 'Tvøroyri'), ('810', 'Tvøroyri'), ('825', 'Frodba'), ('826', 'Trongisvágur'), ('827', 'Øravík'), ('850', 'Hvalba'), ('860', 'Sandvík'), ('870', 'Fámjin'), ('900', 'Vágur'), ('910', 'Vágur'), ('925', '"Nes, Vágur"'), ('926', 'Lopra'), ('927', 'Akrar'), ('928', 'Vikarbyrgi'), ('950', 'Porkeri'), ('960', 'Hov'), ('970', 'Sumba'))

A list of Danish postal codes as choices in a formfield.

localflavor.dk.dk_municipalities.REGION_HOVEDSTADEN = [('albertslund', 'Albertslund'), ('alleroed', 'Allerød'), ('ballerup', 'Ballerup'), ('bornholm', 'Bornholm'), ('broendby', 'Brøndby'), ('dragoer', 'Dragør'), ('egedal', 'Egedal'), ('fredensborg', 'Fredensborg'), ('frederiksberg', 'Frederiksberg'), ('frederikssund', 'Frederikssund'), ('furesoe', 'Furesø'), ('gentofte', 'Gentofte'), ('gladsaxe', 'Gladsaxe'), ('glostrup', 'Glostrup'), ('gribskov', 'Gribskov'), ('halsnaes', 'Halsnæs'), ('helsingoer', 'Helsingør'), ('herlev', 'Herlev'), ('hilleroed', 'Hillerød'), ('hvidovre', 'Hvidovre'), ('hoeje-taastrup', 'Høje-Taastrup'), ('hoersholm', 'Hørsholm'), ('ishoej', 'Ishøj'), ('koebenhavn', 'København'), ('lyngby-taarbaek', 'Lyngby-Taarbæk'), ('rudersdal', 'Rudersdal'), ('roedovre', 'Rødovre'), ('taarnby', 'Tårnby'), ('vallensbaek', 'Vallensbæk')]

A list of municipalities in the Danish region Hovedstaden as choices in a formfield.

localflavor.dk.dk_municipalities.REGION_MIDTJYLLAND = [('favrskov', 'Favrskov'), ('hedensted', 'Hedensted'), ('herning', 'Herning'), ('holstebro', 'Holstebro'), ('horsens', 'Horsens'), ('ikast-Brande', 'Ikast-Brande'), ('lemvig', 'Lemvig'), ('norddjurs', 'Norddjurs'), ('odder', 'Odder'), ('randers', 'Randers'), ('ringkoebing-skjern', 'Ringkøbing-Skjern'), ('samsoe', 'Samsø'), ('silkeborg', 'Silkeborg'), ('skanderborg', 'Skanderborg'), ('skive', 'Skive'), ('struer', 'Struer'), ('syddjurs', 'Syddjurs'), ('viborg', 'Viborg'), ('aarhus', 'Aarhus')]

A list of municipalities in the Danish region Midtjylland as choices in a formfield.

localflavor.dk.dk_municipalities.REGION_NORDJYLLAND = [('broenderslev', 'Brønderslev'), ('frederikshavn', 'Frederikshavn'), ('hjoerring', 'Hjørring'), ('jammerbugt', 'Jammerbugt'), ('laesoe', 'Læsø'), ('mariagerfjord', 'Mariagerfjord'), ('morsoe', 'Morsø'), ('rebild', 'Rebild'), ('thisted', 'Thisted'), ('vesthimmerland', 'Vesthimmerland'), ('aalborg', 'Aalborg')]

A list of municipalities in the Danish region Nordjylland as choices in a formfield.

localflavor.dk.dk_municipalities.REGION_SJAELLAND = [('faxe', 'Faxe'), ('greve', 'Greve'), ('guldborgsund', 'Guldborgsund'), ('holbaek', 'Holbæk'), ('kalundborg', 'Kalundborg'), ('koege', 'Køge'), ('lejre', 'Lejre'), ('lolland', 'Lolland'), ('naestved', 'Næstved'), ('odsherred', 'Odsherred'), ('ringsted', 'Ringsted'), ('roskilde', 'Roskilde'), ('slagelse', 'Slagelse'), ('solroed', 'Solrød'), ('soroe', 'Sorø'), ('stevns', 'Stevns'), ('vordingborg', 'Vordingborg')]

A list of municipalities in the Danish region Sjælland as choices in a formfield.

localflavor.dk.dk_municipalities.REGION_SYDDANMARK = [('assens', 'Assens'), ('billund', 'Billund'), ('esbjerg', 'Esbjerg'), ('fanoe', 'Fanø'), ('fredericia', 'Fredericia'), ('faaborg-Midtfyn', 'Faaborg-Midtfyn'), ('haderslev', 'Haderslev'), ('kerteminde', 'Kerteminde'), ('kolding', 'Kolding'), ('langeland', 'Langeland'), ('middelfart', 'Middelfart'), ('nordfyn', 'Nordfyn'), ('nyborg', 'Nyborg'), ('odense', 'Odense'), ('svendborg', 'Svendborg'), ('soenderborg', 'Sønderborg'), ('toender', 'Tønder'), ('varde', 'Varde'), ('vejen', 'Vejen'), ('vejle', 'Vejle'), ('aeroe', 'Ærø'), ('aabenraa', 'Aabenraa')]

A list of municipalities in the Danish region Syddanmark as choices in a formfield.

localflavor.dk.dk_municipalities.DK_MUNICIPALITIES = [('Region Hovedstaden', [('albertslund', 'Albertslund'), ('alleroed', 'Allerød'), ('ballerup', 'Ballerup'), ('bornholm', 'Bornholm'), ('broendby', 'Brøndby'), ('dragoer', 'Dragør'), ('egedal', 'Egedal'), ('fredensborg', 'Fredensborg'), ('frederiksberg', 'Frederiksberg'), ('frederikssund', 'Frederikssund'), ('furesoe', 'Furesø'), ('gentofte', 'Gentofte'), ('gladsaxe', 'Gladsaxe'), ('glostrup', 'Glostrup'), ('gribskov', 'Gribskov'), ('halsnaes', 'Halsnæs'), ('helsingoer', 'Helsingør'), ('herlev', 'Herlev'), ('hilleroed', 'Hillerød'), ('hvidovre', 'Hvidovre'), ('hoeje-taastrup', 'Høje-Taastrup'), ('hoersholm', 'Hørsholm'), ('ishoej', 'Ishøj'), ('koebenhavn', 'København'), ('lyngby-taarbaek', 'Lyngby-Taarbæk'), ('rudersdal', 'Rudersdal'), ('roedovre', 'Rødovre'), ('taarnby', 'Tårnby'), ('vallensbaek', 'Vallensbæk')]), ('Region Midtjylland', [('favrskov', 'Favrskov'), ('hedensted', 'Hedensted'), ('herning', 'Herning'), ('holstebro', 'Holstebro'), ('horsens', 'Horsens'), ('ikast-Brande', 'Ikast-Brande'), ('lemvig', 'Lemvig'), ('norddjurs', 'Norddjurs'), ('odder', 'Odder'), ('randers', 'Randers'), ('ringkoebing-skjern', 'Ringkøbing-Skjern'), ('samsoe', 'Samsø'), ('silkeborg', 'Silkeborg'), ('skanderborg', 'Skanderborg'), ('skive', 'Skive'), ('struer', 'Struer'), ('syddjurs', 'Syddjurs'), ('viborg', 'Viborg'), ('aarhus', 'Aarhus')]), ('Region Nordjylland', [('broenderslev', 'Brønderslev'), ('frederikshavn', 'Frederikshavn'), ('hjoerring', 'Hjørring'), ('jammerbugt', 'Jammerbugt'), ('laesoe', 'Læsø'), ('mariagerfjord', 'Mariagerfjord'), ('morsoe', 'Morsø'), ('rebild', 'Rebild'), ('thisted', 'Thisted'), ('vesthimmerland', 'Vesthimmerland'), ('aalborg', 'Aalborg')]), ('Region Sjælland', [('faxe', 'Faxe'), ('greve', 'Greve'), ('guldborgsund', 'Guldborgsund'), ('holbaek', 'Holbæk'), ('kalundborg', 'Kalundborg'), ('koege', 'Køge'), ('lejre', 'Lejre'), ('lolland', 'Lolland'), ('naestved', 'Næstved'), ('odsherred', 'Odsherred'), ('ringsted', 'Ringsted'), ('roskilde', 'Roskilde'), ('slagelse', 'Slagelse'), ('solroed', 'Solrød'), ('soroe', 'Sorø'), ('stevns', 'Stevns'), ('vordingborg', 'Vordingborg')]), ('Region Syddanmark', [('assens', 'Assens'), ('billund', 'Billund'), ('esbjerg', 'Esbjerg'), ('fanoe', 'Fanø'), ('fredericia', 'Fredericia'), ('faaborg-Midtfyn', 'Faaborg-Midtfyn'), ('haderslev', 'Haderslev'), ('kerteminde', 'Kerteminde'), ('kolding', 'Kolding'), ('langeland', 'Langeland'), ('middelfart', 'Middelfart'), ('nordfyn', 'Nordfyn'), ('nyborg', 'Nyborg'), ('odense', 'Odense'), ('svendborg', 'Svendborg'), ('soenderborg', 'Sønderborg'), ('toender', 'Tønder'), ('varde', 'Varde'), ('vejen', 'Vejen'), ('vejle', 'Vejle'), ('aeroe', 'Ærø'), ('aabenraa', 'Aabenraa')])]

A list of Danish municipalities grouped by region.

Ecuador (ec)

Forms

Ecuador-specific form helpers.

class localflavor.ec.forms.ECProvinceSelect(attrs=None)[source]

A Select widget that uses a list of Ecuador provinces as its choices.

Data

localflavor.ec.ec_provinces.PROVINCE_CHOICES = (('A', 'Azuay'), ('B', 'Bolívar'), ('F', 'Cañar'), ('C', 'Carchi'), ('H', 'Chimborazo'), ('X', 'Cotopaxi'), ('O', 'El Oro'), ('E', 'Esmeraldas'), ('W', 'Galápagos'), ('G', 'Guayas'), ('I', 'Imbabura'), ('L', 'Loja'), ('R', 'Los Ríos'), ('M', 'Manabí'), ('S', 'Morona Santiago'), ('N', 'Napo'), ('D', 'Orellana'), ('Y', 'Pastaza'), ('P', 'Pichincha'), ('SE', 'Santa Elena'), ('SD', 'Santo Domingo de los Tsáchilas'), ('U', 'Sucumbíos'), ('T', 'Tungurahua'), ('Z', 'Zamora Chinchipe'))

A list of Ecuador provinces as choices in a formfield.

Estonia (ee)

New in version 1.1.

Forms

class localflavor.ee.forms.EEBusinessRegistryCode(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as an Estonian business registration code.

New in version 1.2.

class localflavor.ee.forms.EECountySelect(attrs=None)[source]

A Select widget that uses a list of Estonian counties as its choices.

class localflavor.ee.forms.EEPersonalIdentificationCode(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as an Estonian personal identification code.

See: https://www.riigiteataja.ee/akt/106032012004

static ee_checksum(value)[source]

Takes a string of digits as input, returns check digit.

class localflavor.ee.forms.EEZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a Estonian zip code. Valid codes consist of five digits; first digit cannot be 0.

Data

localflavor.ee.ee_counties.COUNTY_CHOICES = (('37', 'Harju County'), ('39', 'Hiiu County'), ('44', 'Ida-Viru County'), ('49', 'Jõgeva County'), ('51', 'Järva County'), ('57', 'Lääne County'), ('59', 'Lääne-Viru County'), ('65', 'Põlva County'), ('67', 'Pärnu County'), ('70', 'Rapla County'), ('74', 'Saare County'), ('78', 'Tartu County'), ('82', 'Valga County'), ('84', 'Viljandi County'), ('86', 'Võru County'))

A list of Estonian counties as choices in a formfield. Identifiers based on ISO 3166-2:EE. https://en.wikipedia.org/wiki/ISO_3166-2:EE

Spain (es)

Forms

Spanish-specific Form helpers

class localflavor.es.forms.ESCCCField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as a Spanish bank account or CCC (Codigo Cuenta Cliente).

Spanish CCC is in format EEEE-OOOO-CC-AAAAAAAAAA where:

E = entity O = office C = checksum A = account

It’s also valid to use a space as delimiter, or to use no delimiter.

First checksum digit validates entity and office, and last one validates account. Validation is done multiplying every digit of 10 digit value (with leading 0 if necessary) by number in its position in string 1, 2, 4, 8, 5, 10, 9, 7, 3, 6. Sum resulting numbers and extract it from 11. Result is checksum except when 10 then is 1, or when 11 then is 0.

TODO: allow IBAN validation too

class localflavor.es.forms.ESIdentityCardNumberField(only_nif=False, max_length=None, min_length=None, *args, **kwargs)[source]

Spanish NIF/NIE/CIF (Fiscal Identification Number) code.

Validates three diferent formats:

NIF (individuals): 12345678A CIF (companies): A12345678 NIE (foreigners): X12345678A

according to a couple of simple checksum algorithms.

Value can include a space or hyphen separator between number and letters. Number length is not checked for NIF (or NIE), old values start with a 1, and future values can contain digits greater than 8. The CIF control digit can be a number or a letter depending on company type. Algorithm is not public, and different authors have different opinions on which ones allows letters, so both validations are assumed true for all types.

http://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal

Changed in version 1.1.

class localflavor.es.forms.ESPhoneNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as a Spanish phone number. Information numbers are ommited.

Spanish phone numbers are nine digit numbers, where first digit is 6 (for cell phones), 8 (for special phones), or 9 (for landlines and special phones)

TODO: accept and strip characters like dot, hyphen... in phone number

class localflavor.es.forms.ESPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as a spanish postal code.

Spanish postal code is a five digits string, with two first digits between 01 and 52, assigned to provinces code.

class localflavor.es.forms.ESProvinceSelect(attrs=None)[source]

A Select widget that uses a list of spanish provinces as its choices.

class localflavor.es.forms.ESRegionSelect(attrs=None)[source]

A Select widget that uses a list of spanish regions as its choices.

Data

localflavor.es.es_provinces.PROVINCE_CHOICES = (('01', 'Araba'), ('02', 'Albacete'), ('03', 'Alacant'), ('04', 'Almeria'), ('05', 'Avila'), ('06', 'Badajoz'), ('07', 'Illes Balears'), ('08', 'Barcelona'), ('09', 'Burgos'), ('10', 'Caceres'), ('11', 'Cadiz'), ('12', 'Castello'), ('13', 'Ciudad Real'), ('14', 'Cordoba'), ('15', 'A Coruna'), ('16', 'Cuenca'), ('17', 'Girona'), ('18', 'Granada'), ('19', 'Guadalajara'), ('20', 'Guipuzkoa'), ('21', 'Huelva'), ('22', 'Huesca'), ('23', 'Jaen'), ('24', 'Leon'), ('25', 'Lleida'), ('26', 'La Rioja'), ('27', 'Lugo'), ('28', 'Madrid'), ('29', 'Malaga'), ('30', 'Murcia'), ('31', 'Navarre'), ('32', 'Ourense'), ('33', 'Asturias'), ('34', 'Palencia'), ('35', 'Las Palmas'), ('36', 'Pontevedra'), ('37', 'Salamanca'), ('38', 'Santa Cruz de Tenerife'), ('39', 'Cantabria'), ('40', 'Segovia'), ('41', 'Seville'), ('42', 'Soria'), ('43', 'Tarragona'), ('44', 'Teruel'), ('45', 'Toledo'), ('46', 'Valencia'), ('47', 'Valladolid'), ('48', 'Bizkaia'), ('49', 'Zamora'), ('50', 'Zaragoza'), ('51', 'Ceuta'), ('52', 'Melilla'))

An alphabetical list of provinces

localflavor.es.es_regions.REGION_CHOICES = (('AN', 'Andalusia'), ('AR', 'Aragon'), ('O', 'Principality of Asturias'), ('IB', 'Balearic Islands'), ('PV', 'Basque Country'), ('CN', 'Canary Islands'), ('S', 'Cantabria'), ('CM', 'Castile-La Mancha'), ('CL', 'Castile and Leon'), ('CT', 'Catalonia'), ('EX', 'Extremadura'), ('GA', 'Galicia'), ('LO', 'La Rioja'), ('M', 'Madrid'), ('MU', 'Region of Murcia'), ('NA', 'Foral Community of Navarre'), ('VC', 'Valencian Community'), ('CE', 'Autonomous city of Ceuta'), ('ML', 'Autonomous city of Mellila'))

An alphabetical list of regions

Finland (fi)

Forms

FI-specific Form helpers

class localflavor.fi.forms.FIMunicipalitySelect(attrs=None)[source]

A Select widget that uses a list of Finnish municipalities as its choices.

class localflavor.fi.forms.FISocialSecurityNumber(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as a Finnish social security number.

class localflavor.fi.forms.FIZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a Finnish zip code. Valid codes consist of five digits.

Data

localflavor.fi.fi_municipalities.MUNICIPALITY_CHOICES = (('akaa', 'Akaa'), ('alajarvi', 'Alajärvi'), ('alavieska', 'Alavieska'), ('alavus', 'Alavus'), ('artjarvi', 'Artjärvi'), ('asikkala', 'Asikkala'), ('askola', 'Askola'), ('aura', 'Aura'), ('brando', 'Brändö'), ('eckero', 'Eckerö'), ('enonkoski', 'Enonkoski'), ('enontekio', 'Enontekiö'), ('espoo', 'Espoo'), ('eura', 'Eura'), ('eurajoki', 'Eurajoki'), ('evijarvi', 'Evijärvi'), ('finstrom', 'Finström'), ('forssa', 'Forssa'), ('foglo', 'Föglö'), ('geta', 'Geta'), ('haapajarvi', 'Haapajärvi'), ('haapavesi', 'Haapavesi'), ('hailuoto', 'Hailuoto'), ('halsua', 'Halsua'), ('hamina', 'Hamina'), ('hammarland', 'Hammarland'), ('hankasalmi', 'Hankasalmi'), ('hanko', 'Hanko'), ('harjavalta', 'Harjavalta'), ('hartola', 'Hartola'), ('hattula', 'Hattula'), ('haukipudas', 'Haukipudas'), ('hausjarvi', 'Hausjärvi'), ('heinola', 'Heinola'), ('heinavesi', 'Heinävesi'), ('helsinki', 'Helsinki'), ('hirvensalmi', 'Hirvensalmi'), ('hollola', 'Hollola'), ('honkajoki', 'Honkajoki'), ('huittinen', 'Huittinen'), ('humppila', 'Humppila'), ('hyrynsalmi', 'Hyrynsalmi'), ('hyvinkaa', 'Hyvinkää'), ('hameenkoski', 'Hämeenkoski'), ('hameenkyro', 'Hämeenkyrö'), ('hameenlinna', 'Hämeenlinna'), ('ii', 'Ii'), ('iisalmi', 'Iisalmi'), ('iitti', 'Iitti'), ('ikaalinen', 'Ikaalinen'), ('ilmajoki', 'Ilmajoki'), ('ilomantsi', 'Ilomantsi'), ('imatra', 'Imatra'), ('inari', 'Inari'), ('inkoo', 'Inkoo'), ('isojoki', 'Isojoki'), ('isokyro', 'Isokyrö'), ('jalasjarvi', 'Jalasjärvi'), ('janakkala', 'Janakkala'), ('joensuu', 'Joensuu'), ('jokioinen', 'Jokioinen'), ('jomala', 'Jomala'), ('joroinen', 'Joroinen'), ('joutsa', 'Joutsa'), ('juankoski', 'Juankoski'), ('juuka', 'Juuka'), ('juupajoki', 'Juupajoki'), ('juva', 'Juva'), ('jyvaskyla', 'Jyväskylä'), ('jamijarvi', 'Jämijärvi'), ('jamsa', 'Jämsä'), ('jarvenpaa', 'Järvenpää'), ('kaarina', 'Kaarina'), ('kaavi', 'Kaavi'), ('kajaani', 'Kajaani'), ('kalajoki', 'Kalajoki'), ('kangasala', 'Kangasala'), ('kangasniemi', 'Kangasniemi'), ('kankaanpaa', 'Kankaanpää'), ('kannonkoski', 'Kannonkoski'), ('kannus', 'Kannus'), ('karijoki', 'Karijoki'), ('karjalohja', 'Karjalohja'), ('karkkila', 'Karkkila'), ('karstula', 'Karstula'), ('karttula', 'Karttula'), ('karvia', 'Karvia'), ('kaskinen', 'Kaskinen'), ('kauhajoki', 'Kauhajoki'), ('kauhava', 'Kauhava'), ('kauniainen', 'Kauniainen'), ('kaustinen', 'Kaustinen'), ('keitele', 'Keitele'), ('kemi', 'Kemi'), ('kemijarvi', 'Kemijärvi'), ('keminmaa', 'Keminmaa'), ('kemionsaari', 'Kemiönsaari'), ('kempele', 'Kempele'), ('kerava', 'Kerava'), ('kerimaki', 'Kerimäki'), ('kesalahti', 'Kesälahti'), ('keuruu', 'Keuruu'), ('kihnio', 'Kihniö'), ('kiikoinen', 'Kiikoinen'), ('kiiminki', 'Kiiminki'), ('kinnula', 'Kinnula'), ('kirkkonummi', 'Kirkkonummi'), ('kitee', 'Kitee'), ('kittila', 'Kittilä'), ('kiuruvesi', 'Kiuruvesi'), ('kivijarvi', 'Kivijärvi'), ('kokemaki', 'Kokemäki'), ('kokkola', 'Kokkola'), ('kolari', 'Kolari'), ('konnevesi', 'Konnevesi'), ('kontiolahti', 'Kontiolahti'), ('korsnas', 'Korsnäs'), ('koskitl', 'Koski Tl'), ('kotka', 'Kotka'), ('kouvola', 'Kouvola'), ('kristiinankaupunki', 'Kristiinankaupunki'), ('kruunupyy', 'Kruunupyy'), ('kuhmalahti', 'Kuhmalahti'), ('kuhmo', 'Kuhmo'), ('kuhmoinen', 'Kuhmoinen'), ('kumlinge', 'Kumlinge'), ('kuopio', 'Kuopio'), ('kuortane', 'Kuortane'), ('kurikka', 'Kurikka'), ('kustavi', 'Kustavi'), ('kuusamo', 'Kuusamo'), ('kylmakoski', 'Kylmäkoski'), ('kyyjarvi', 'Kyyjärvi'), ('karkola', 'Kärkölä'), ('karsamaki', 'Kärsämäki'), ('kokar', 'Kökar'), ('koylio', 'Köyliö'), ('lahti', 'Lahti'), ('laihia', 'Laihia'), ('laitila', 'Laitila'), ('lapinjarvi', 'Lapinjärvi'), ('lapinlahti', 'Lapinlahti'), ('lappajarvi', 'Lappajärvi'), ('lappeenranta', 'Lappeenranta'), ('lapua', 'Lapua'), ('laukaa', 'Laukaa'), ('lavia', 'Lavia'), ('lemi', 'Lemi'), ('lemland', 'Lemland'), ('lempaala', 'Lempäälä'), ('leppavirta', 'Leppävirta'), ('lestijarvi', 'Lestijärvi'), ('lieksa', 'Lieksa'), ('lieto', 'Lieto'), ('liminka', 'Liminka'), ('liperi', 'Liperi'), ('lohja', 'Lohja'), ('loimaa', 'Loimaa'), ('loppi', 'Loppi'), ('loviisa', 'Loviisa'), ('luhanka', 'Luhanka'), ('lumijoki', 'Lumijoki'), ('lumparland', 'Lumparland'), ('luoto', 'Luoto'), ('luumaki', 'Luumäki'), ('luvia', 'Luvia'), ('lansi-turunmaa', 'Länsi-Turunmaa'), ('maalahti', 'Maalahti'), ('maaninka', 'Maaninka'), ('maarianhamina', 'Maarianhamina'), ('marttila', 'Marttila'), ('masku', 'Masku'), ('merijarvi', 'Merijärvi'), ('merikarvia', 'Merikarvia'), ('miehikkala', 'Miehikkälä'), ('mikkeli', 'Mikkeli'), ('muhos', 'Muhos'), ('multia', 'Multia'), ('muonio', 'Muonio'), ('mustasaari', 'Mustasaari'), ('muurame', 'Muurame'), ('mynamaki', 'Mynämäki'), ('myrskyla', 'Myrskylä'), ('mantsala', 'Mäntsälä'), ('mantta-vilppula', 'Mänttä-Vilppula'), ('mantyharju', 'Mäntyharju'), ('naantali', 'Naantali'), ('nakkila', 'Nakkila'), ('nastola', 'Nastola'), ('nilsia', 'Nilsiä'), ('nivala', 'Nivala'), ('nokia', 'Nokia'), ('nousiainen', 'Nousiainen'), ('nummi-pusula', 'Nummi-Pusula'), ('nurmes', 'Nurmes'), ('nurmijarvi', 'Nurmijärvi'), ('narpio', 'Närpiö'), ('oravainen', 'Oravainen'), ('orimattila', 'Orimattila'), ('oripaa', 'Oripää'), ('orivesi', 'Orivesi'), ('oulainen', 'Oulainen'), ('oulu', 'Oulu'), ('oulunsalo', 'Oulunsalo'), ('outokumpu', 'Outokumpu'), ('padasjoki', 'Padasjoki'), ('paimio', 'Paimio'), ('paltamo', 'Paltamo'), ('parikkala', 'Parikkala'), ('parkano', 'Parkano'), ('pedersore', 'Pedersöre'), ('pelkosenniemi', 'Pelkosenniemi'), ('pello', 'Pello'), ('perho', 'Perho'), ('pertunmaa', 'Pertunmaa'), ('petajavesi', 'Petäjävesi'), ('pieksamaki', 'Pieksämäki'), ('pielavesi', 'Pielavesi'), ('pietarsaari', 'Pietarsaari'), ('pihtipudas', 'Pihtipudas'), ('pirkkala', 'Pirkkala'), ('polvijarvi', 'Polvijärvi'), ('pomarkku', 'Pomarkku'), ('pori', 'Pori'), ('pornainen', 'Pornainen'), ('porvoo', 'Porvoo'), ('posio', 'Posio'), ('pudasjarvi', 'Pudasjärvi'), ('pukkila', 'Pukkila'), ('punkaharju', 'Punkaharju'), ('punkalaidun', 'Punkalaidun'), ('puolanka', 'Puolanka'), ('puumala', 'Puumala'), ('pyhtaa', 'Pyhtää'), ('pyhajoki', 'Pyhäjoki'), ('pyhajarvi', 'Pyhäjärvi'), ('pyhanta', 'Pyhäntä'), ('pyharanta', 'Pyhäranta'), ('palkane', 'Pälkäne'), ('poytya', 'Pöytyä'), ('raahe', 'Raahe'), ('raasepori', 'Raasepori'), ('raisio', 'Raisio'), ('rantasalmi', 'Rantasalmi'), ('ranua', 'Ranua'), ('rauma', 'Rauma'), ('rautalampi', 'Rautalampi'), ('rautavaara', 'Rautavaara'), ('rautjarvi', 'Rautjärvi'), ('reisjarvi', 'Reisjärvi'), ('riihimaki', 'Riihimäki'), ('ristiina', 'Ristiina'), ('ristijarvi', 'Ristijärvi'), ('rovaniemi', 'Rovaniemi'), ('ruokolahti', 'Ruokolahti'), ('ruovesi', 'Ruovesi'), ('rusko', 'Rusko'), ('raakkyla', 'Rääkkylä'), ('saarijarvi', 'Saarijärvi'), ('salla', 'Salla'), ('salo', 'Salo'), ('saltvik', 'Saltvik'), ('sastamala', 'Sastamala'), ('sauvo', 'Sauvo'), ('savitaipale', 'Savitaipale'), ('savonlinna', 'Savonlinna'), ('savukoski', 'Savukoski'), ('seinajoki', 'Seinäjoki'), ('sievi', 'Sievi'), ('siikainen', 'Siikainen'), ('siikajoki', 'Siikajoki'), ('siikalatva', 'Siikalatva'), ('siilinjarvi', 'Siilinjärvi'), ('simo', 'Simo'), ('sipoo', 'Sipoo'), ('siuntio', 'Siuntio'), ('sodankyla', 'Sodankylä'), ('soini', 'Soini'), ('somero', 'Somero'), ('sonkajarvi', 'Sonkajärvi'), ('sotkamo', 'Sotkamo'), ('sottunga', 'Sottunga'), ('sulkava', 'Sulkava'), ('sund', 'Sund'), ('suomenniemi', 'Suomenniemi'), ('suomussalmi', 'Suomussalmi'), ('suonenjoki', 'Suonenjoki'), ('sysma', 'Sysmä'), ('sakyla', 'Säkylä'), ('taipalsaari', 'Taipalsaari'), ('taivalkoski', 'Taivalkoski'), ('taivassalo', 'Taivassalo'), ('tammela', 'Tammela'), ('tampere', 'Tampere'), ('tarvasjoki', 'Tarvasjoki'), ('tervo', 'Tervo'), ('tervola', 'Tervola'), ('teuva', 'Teuva'), ('tohmajarvi', 'Tohmajärvi'), ('toholampi', 'Toholampi'), ('toivakka', 'Toivakka'), ('tornio', 'Tornio'), ('turku', 'Turku'), ('tuusniemi', 'Tuusniemi'), ('tuusula', 'Tuusula'), ('tyrnava', 'Tyrnävä'), ('toysa', 'Töysä'), ('ulvila', 'Ulvila'), ('urjala', 'Urjala'), ('utajarvi', 'Utajärvi'), ('utsjoki', 'Utsjoki'), ('uurainen', 'Uurainen'), ('uusikaarlepyy', 'Uusikaarlepyy'), ('uusikaupunki', 'Uusikaupunki'), ('vaala', 'Vaala'), ('vaasa', 'Vaasa'), ('valkeakoski', 'Valkeakoski'), ('valtimo', 'Valtimo'), ('vantaa', 'Vantaa'), ('varkaus', 'Varkaus'), ('varpaisjarvi', 'Varpaisjärvi'), ('vehmaa', 'Vehmaa'), ('vesanto', 'Vesanto'), ('vesilahti', 'Vesilahti'), ('veteli', 'Veteli'), ('vierema', 'Vieremä'), ('vihanti', 'Vihanti'), ('vihti', 'Vihti'), ('viitasaari', 'Viitasaari'), ('vimpeli', 'Vimpeli'), ('virolahti', 'Virolahti'), ('virrat', 'Virrat'), ('vardo', 'Vårdö'), ('vahakyro', 'Vähäkyrö'), ('voyri-maksamaa', 'Vöyri-Maksamaa'), ('yli-ii', 'Yli-Ii'), ('ylitornio', 'Ylitornio'), ('ylivieska', 'Ylivieska'), ('ylojarvi', 'Ylöjärvi'), ('ypaja', 'Ypäjä'), ('ahtari', 'Ähtäri'), ('aanekoski', 'Äänekoski'))

An alphabetical list of Finnish municipalities for use as choices in a formfield.

France (fr)

Forms

FR-specific Form helpers

class localflavor.fr.forms.FRDepartmentField(*args, **kwargs)[source]

A Select Field that uses a FRDepartmentSelect widget.

widget

alias of FRDepartmentSelect

class localflavor.fr.forms.FRDepartmentSelect(attrs=None)[source]

A Select widget that uses a list of FR departments as its choices.

class localflavor.fr.forms.FRNationalIdentificationNumber(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

Validates input as a French National Identification number. Validation of the Number, and checksum calculation is detailed at http://en.wikipedia.org/wiki/INSEE_code

New in version 1.1.

class localflavor.fr.forms.FRPhoneNumberField(*args, **kwargs)[source]

Validate local French phone number (not international ones) The correct format is ‘0X XX XX XX XX’. ‘0X.XX.XX.XX.XX’ and ‘0XXXXXXXXX’ validate but are corrected to ‘0X XX XX XX XX’.

class localflavor.fr.forms.FRRegionField(*args, **kwargs)[source]

A Select Field that uses a FRRegionSelect widget.

widget

alias of FRRegionSelect

class localflavor.fr.forms.FRRegionSelect(attrs=None)[source]

A Select widget that uses a list of FR Regions as its choices.

class localflavor.fr.forms.FRSIRENField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

SIREN stands for “Système d’identification du répertoire des entreprises”

It’s under authority of the INSEE. See http://fr.wikipedia.org/wiki/Système_d’identification_du_répertoire_des_entreprises for more information.

New in version 1.1.

class localflavor.fr.forms.FRSIRETField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

SIRET stands for “Système d’identification du répertoire des établissements”

It’s under authority of the INSEE. See http://fr.wikipedia.org/wiki/Système_d’identification_du_répertoire_des_établissements for more information.

New in version 1.1.

class localflavor.fr.forms.FRZipCodeField(*args, **kwargs)[source]

Validate local French zip code. The correct format is ‘XXXXX’.

Data

localflavor.fr.fr_department.DEPARTMENT_CHOICES_PER_REGION = (('01', 'Ain', '82'), ('02', 'Aisne', '22'), ('03', 'Allier', '83'), ('04', 'Alpes-de-Haute-Provence', '93'), ('05', 'Hautes-Alpes', '93'), ('06', 'Alpes-Maritimes', '93'), ('07', 'Ardèche', '82'), ('08', 'Ardennes', '21'), ('09', 'Ariège', '73'), ('10', 'Aube', '21'), ('11', 'Aude', '91'), ('12', 'Aveyron', '73'), ('13', 'Bouches-du-Rhône', '93'), ('14', 'Calvados', '25'), ('15', 'Cantal', '83'), ('16', 'Charente', '54'), ('17', 'Charente-Maritime', '54'), ('18', 'Cher', '24'), ('19', 'Corrèze', '74'), ('2A', 'Corse-du-Sud', '94'), ('2B', 'Haute-Corse', '94'), ('21', "Côte-d'Or", '26'), ('22', "Côtes-d'Armor", '53'), ('23', 'Creuse', '74'), ('24', 'Dordogne', '72'), ('25', 'Doubs', '43'), ('26', 'Drôme', '82'), ('27', 'Eure', '23'), ('28', 'Eure-et-Loir', '24'), ('29', 'Finistère', '53'), ('30', 'Gard', '91'), ('31', 'Haute-Garonne', '73'), ('32', 'Gers', '73'), ('33', 'Gironde', '72'), ('34', 'Hérault', '91'), ('35', 'Ille-et-Vilaine', '53'), ('36', 'Indre', '24'), ('37', 'Indre-et-Loire', '24'), ('38', 'Isère', '82'), ('39', 'Jura', '43'), ('40', 'Landes', '72'), ('41', 'Loir-et-Cher', '24'), ('42', 'Loire', '82'), ('43', 'Haute-Loire', '83'), ('44', 'Loire-Atlantique', '52'), ('45', 'Loiret', '24'), ('46', 'Lot', '73'), ('47', 'Lot-et-Garonne', '72'), ('48', 'Lozère', '91'), ('49', 'Maine-et-Loire', '52'), ('50', 'Manche', '25'), ('51', 'Marne', '21'), ('52', 'Haute-Marne', '21'), ('53', 'Mayenne', '52'), ('54', 'Meurthe-et-Moselle', '41'), ('55', 'Meuse', '41'), ('56', 'Morbihan', '53'), ('57', 'Moselle', '41'), ('58', 'Nièvre', '26'), ('59', 'Nord', '31'), ('60', 'Oise', '22'), ('61', 'Orne', '25'), ('62', 'Pas-de-Calais', '31'), ('63', 'Puy-de-Dôme', '83'), ('64', 'Pyrénées-Atlantiques', '72'), ('65', 'Hautes-Pyrénées', '73'), ('66', 'Pyrénées-Orientales', '91'), ('67', 'Bas-Rhin', '42'), ('68', 'Haut-Rhin', '42'), ('69', 'Rhône', '82'), ('70', 'Haute-Saône', '43'), ('71', 'Saône-et-Loire', '26'), ('72', 'Sarthe', '52'), ('73', 'Savoie', '82'), ('74', 'Haute-Savoie', '82'), ('75', 'Paris', '11'), ('76', 'Seine-Maritime', '23'), ('77', 'Seine-et-Marne', '11'), ('78', 'Yvelines', '11'), ('79', 'Deux-Sèvres', '54'), ('80', 'Somme', '22'), ('81', 'Tarn', '73'), ('82', 'Tarn-et-Garonne', '73'), ('83', 'Var', '93'), ('84', 'Vaucluse', '93'), ('85', 'Vendée', '52'), ('86', 'Vienne', '54'), ('87', 'Haute-Vienne', '74'), ('88', 'Vosges', '41'), ('89', 'Yonne', '26'), ('90', 'Territoire de Belfort', '43'), ('91', 'Essonne', '11'), ('92', 'Hauts-de-Seine', '11'), ('93', 'Seine-Saint-Denis', '11'), ('94', 'Val-de-Marne', '11'), ('95', "Val-d'Oise", '11'), ('971', 'Guadeloupe', '01'), ('972', 'Martinique', '02'), ('973', 'Guyane', '03'), ('974', 'La Réunion', '04'), ('975', 'Saint-Pierre-et-Miquelon', None), ('976', 'Mayotte', '05'), ('977', 'Saint-Barthélemy', None), ('978', 'Saint-Martin', None), ('984', 'Terres australes et antarctiques françaises', None), ('986', 'Wallis et Futuna', None), ('987', 'Polynésie française', None), ('988', 'Nouvelle-Calédonie', None), ('989', 'Île de Clipperton', None))

See the “Code officiel géographique” on the INSEE website <www.insee.fr>.

localflavor.fr.fr_department.DEPARTMENT_CHOICES = (('01', '01 - Ain'), ('02', '02 - Aisne'), ('03', '03 - Allier'), ('04', '04 - Alpes-de-Haute-Provence'), ('05', '05 - Hautes-Alpes'), ('06', '06 - Alpes-Maritimes'), ('07', '07 - Ardèche'), ('08', '08 - Ardennes'), ('09', '09 - Ariège'), ('10', '10 - Aube'), ('11', '11 - Aude'), ('12', '12 - Aveyron'), ('13', '13 - Bouches-du-Rhône'), ('14', '14 - Calvados'), ('15', '15 - Cantal'), ('16', '16 - Charente'), ('17', '17 - Charente-Maritime'), ('18', '18 - Cher'), ('19', '19 - Corrèze'), ('2A', '2A - Corse-du-Sud'), ('2B', '2B - Haute-Corse'), ('21', "21 - Côte-d'Or"), ('22', "22 - Côtes-d'Armor"), ('23', '23 - Creuse'), ('24', '24 - Dordogne'), ('25', '25 - Doubs'), ('26', '26 - Drôme'), ('27', '27 - Eure'), ('28', '28 - Eure-et-Loir'), ('29', '29 - Finistère'), ('30', '30 - Gard'), ('31', '31 - Haute-Garonne'), ('32', '32 - Gers'), ('33', '33 - Gironde'), ('34', '34 - Hérault'), ('35', '35 - Ille-et-Vilaine'), ('36', '36 - Indre'), ('37', '37 - Indre-et-Loire'), ('38', '38 - Isère'), ('39', '39 - Jura'), ('40', '40 - Landes'), ('41', '41 - Loir-et-Cher'), ('42', '42 - Loire'), ('43', '43 - Haute-Loire'), ('44', '44 - Loire-Atlantique'), ('45', '45 - Loiret'), ('46', '46 - Lot'), ('47', '47 - Lot-et-Garonne'), ('48', '48 - Lozère'), ('49', '49 - Maine-et-Loire'), ('50', '50 - Manche'), ('51', '51 - Marne'), ('52', '52 - Haute-Marne'), ('53', '53 - Mayenne'), ('54', '54 - Meurthe-et-Moselle'), ('55', '55 - Meuse'), ('56', '56 - Morbihan'), ('57', '57 - Moselle'), ('58', '58 - Nièvre'), ('59', '59 - Nord'), ('60', '60 - Oise'), ('61', '61 - Orne'), ('62', '62 - Pas-de-Calais'), ('63', '63 - Puy-de-Dôme'), ('64', '64 - Pyrénées-Atlantiques'), ('65', '65 - Hautes-Pyrénées'), ('66', '66 - Pyrénées-Orientales'), ('67', '67 - Bas-Rhin'), ('68', '68 - Haut-Rhin'), ('69', '69 - Rhône'), ('70', '70 - Haute-Saône'), ('71', '71 - Saône-et-Loire'), ('72', '72 - Sarthe'), ('73', '73 - Savoie'), ('74', '74 - Haute-Savoie'), ('75', '75 - Paris'), ('76', '76 - Seine-Maritime'), ('77', '77 - Seine-et-Marne'), ('78', '78 - Yvelines'), ('79', '79 - Deux-Sèvres'), ('80', '80 - Somme'), ('81', '81 - Tarn'), ('82', '82 - Tarn-et-Garonne'), ('83', '83 - Var'), ('84', '84 - Vaucluse'), ('85', '85 - Vendée'), ('86', '86 - Vienne'), ('87', '87 - Haute-Vienne'), ('88', '88 - Vosges'), ('89', '89 - Yonne'), ('90', '90 - Territoire de Belfort'), ('91', '91 - Essonne'), ('92', '92 - Hauts-de-Seine'), ('93', '93 - Seine-Saint-Denis'), ('94', '94 - Val-de-Marne'), ('95', "95 - Val-d'Oise"), ('971', '971 - Guadeloupe'), ('972', '972 - Martinique'), ('973', '973 - Guyane'), ('974', '974 - La Réunion'), ('975', '975 - Saint-Pierre-et-Miquelon'), ('976', '976 - Mayotte'), ('977', '977 - Saint-Barthélemy'), ('978', '978 - Saint-Martin'), ('984', '984 - Terres australes et antarctiques françaises'), ('986', '986 - Wallis et Futuna'), ('987', '987 - Polynésie française'), ('988', '988 - Nouvelle-Calédonie'), ('989', '989 - Île de Clipperton'))

A list of departments

localflavor.fr.fr_region.REGION_CHOICES = (('01', 'Guadeloupe'), ('02', 'Martinique'), ('03', 'Guyane'), ('04', 'La Réunion'), ('05', 'Mayotte'), ('11', 'Île-de-France'), ('21', 'Champagne-Ardenne'), ('22', 'Picardie'), ('23', 'Haute-Normandie'), ('24', 'Centre'), ('25', 'Basse-Normandie'), ('26', 'Bourgogne'), ('31', 'Nord-Pas-de-Calais'), ('41', 'Lorraine'), ('42', 'Alsace'), ('43', 'Franche-Comté'), ('52', 'Pays de la Loire'), ('53', 'Bretagne'), ('54', 'Poitou-Charentes'), ('72', 'Aquitaine'), ('73', 'Midi-Pyrénées'), ('74', 'Limousin'), ('82', 'Rhône-Alpes'), ('83', 'Auvergne'), ('91', 'Languedoc-Roussillon'), ('93', "Provence-Alpes-Côte d'Azur"), ('94', 'Corse'))

See the “Code officiel géographique” on the INSEE website <www.insee.fr>.

Great Britain (gb)

Forms

GB-specific Form helpers

class localflavor.gb.forms.GBCountySelect(attrs=None)[source]

A Select widget that uses a list of UK Counties/Regions as its choices.

class localflavor.gb.forms.GBNationSelect(attrs=None)[source]

A Select widget that uses a list of UK Nations as its choices.

class localflavor.gb.forms.GBPostcodeField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates its input is a UK postcode.

The regular expression used is sourced from the schema for British Standard BS7666 address types: http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd

The value is uppercased and a space added in the correct place, if required.

Data

This module contains various lists of regions and subdivisions in Great Britain. Since subdivisions aren’t clear this is supposed to be the most pragmatic collection of lists as possible. Your mileage may vary.

See https://github.com/django/django-localflavor/pull/43 for a long discussion about it.

Changed in version 1.1.

localflavor.gb.gb_regions.ENGLAND_REGION_CHOICES = (('Bath and North East Somerset', 'Bath and North East Somerset'), ('Bedford', 'Bedford'), ('Berkshire', 'Berkshire'), ('Blackburn with Darwen', 'Blackburn with Darwen'), ('Blackpool', 'Blackpool'), ('Bournemouth', 'Bournemouth'), ('Brighton & Hove', 'Brighton & Hove'), ('Bristol', 'Bristol'), ('Buckinghamshire', 'Buckinghamshire'), ('Cambridgeshire', 'Cambridgeshire'), ('Central Bedfordshire', 'Central Bedfordshire'), ('Cheshire East', 'Cheshire East'), ('Cheshire West and Chester', 'Cheshire West and Chester'), ('Cornwall', 'Cornwall'), ('Cumbria', 'Cumbria'), ('Darlington', 'Darlington'), ('Derby', 'Derby'), ('Derbyshire', 'Derbyshire'), ('Devon', 'Devon'), ('Dorset', 'Dorset'), ('Durham', 'Durham'), ('East Riding of Yorkshire', 'East Riding of Yorkshire'), ('East Sussex', 'East Sussex'), ('Essex', 'Essex'), ('Gloucestershire', 'Gloucestershire'), ('Greater Manchester', 'Greater Manchester'), ('Halton', 'Halton'), ('Hampshire', 'Hampshire'), ('Hartlepool', 'Hartlepool'), ('Herefordshire', 'Herefordshire'), ('Hertfordshire', 'Hertfordshire'), ('Isle of Wight', 'Isle of Wight'), ('Kent', 'Kent'), ('Kingston upon Hull', 'Kingston upon Hull'), ('Lancashire', 'Lancashire'), ('Leicester', 'Leicester'), ('Leicestershire', 'Leicestershire'), ('Lincolnshire', 'Lincolnshire'), ('London', 'London'), ('Luton', 'Luton'), ('Medway', 'Medway'), ('Merseyside', 'Merseyside'), ('Middlesbrough', 'Middlesbrough'), ('Milton Keynes', 'Milton Keynes'), ('Norfolk', 'Norfolk'), ('North East Lincolnshire', 'North East Lincolnshire'), ('North Lincolnshire', 'North Lincolnshire'), ('North Somerset', 'North Somerset'), ('North Yorkshire', 'North Yorkshire'), ('Northamptonshire', 'Northamptonshire'), ('Northumberland', 'Northumberland'), ('Nottingham', 'Nottingham'), ('Nottinghamshire', 'Nottinghamshire'), ('Oxfordshire', 'Oxfordshire'), ('Peterborough', 'Peterborough'), ('Plymouth', 'Plymouth'), ('Poole', 'Poole'), ('Portsmouth', 'Portsmouth'), ('Redcar and Cleveland', 'Redcar and Cleveland'), ('Rutland', 'Rutland'), ('Shropshire', 'Shropshire'), ('Somerset', 'Somerset'), ('South Gloucestershire', 'South Gloucestershire'), ('South Yorkshire', 'South Yorkshire'), ('Southampton', 'Southampton'), ('Southend-on-Sea', 'Southend-on-Sea'), ('Staffordshire', 'Staffordshire'), ('Stockton-on-Tees', 'Stockton-on-Tees'), ('Stoke-on-Trent', 'Stoke-on-Trent'), ('Suffolk', 'Suffolk'), ('Surrey', 'Surrey'), ('Swindon', 'Swindon'), ('Telford and Wrekin', 'Telford and Wrekin'), ('Thurrock', 'Thurrock'), ('Torbay', 'Torbay'), ('Tyne and Wear', 'Tyne and Wear'), ('Warrington', 'Warrington'), ('Warwickshire', 'Warwickshire'), ('West Midlands', 'West Midlands'), ('West Sussex', 'West Sussex'), ('West Yorkshire', 'West Yorkshire'), ('Wiltshire', 'Wiltshire'), ('Worcestershire', 'Worcestershire'), ('York', 'York'))

Metropolitan and non-metropolitan counties of England (not the ceremonial counties) Retrieved 10th Nov 2014 from http://en.wikipedia.org/wiki/Metropolitan_and_non-metropolitan_counties_of_England

localflavor.gb.gb_regions.GB_NATIONS_CHOICES = (('England', 'England'), ('Northern Ireland', 'Northern Ireland'), ('Wales', 'Wales'), ('Scotland', 'Scotland'))

Nations of the United Kingdom

localflavor.gb.gb_regions.GB_REGION_CHOICES = (('Bath and North East Somerset', 'Bath and North East Somerset'), ('Bedford', 'Bedford'), ('Berkshire', 'Berkshire'), ('Blackburn with Darwen', 'Blackburn with Darwen'), ('Blackpool', 'Blackpool'), ('Bournemouth', 'Bournemouth'), ('Brighton & Hove', 'Brighton & Hove'), ('Bristol', 'Bristol'), ('Buckinghamshire', 'Buckinghamshire'), ('Cambridgeshire', 'Cambridgeshire'), ('Central Bedfordshire', 'Central Bedfordshire'), ('Cheshire East', 'Cheshire East'), ('Cheshire West and Chester', 'Cheshire West and Chester'), ('Cornwall', 'Cornwall'), ('Cumbria', 'Cumbria'), ('Darlington', 'Darlington'), ('Derby', 'Derby'), ('Derbyshire', 'Derbyshire'), ('Devon', 'Devon'), ('Dorset', 'Dorset'), ('Durham', 'Durham'), ('East Riding of Yorkshire', 'East Riding of Yorkshire'), ('East Sussex', 'East Sussex'), ('Essex', 'Essex'), ('Gloucestershire', 'Gloucestershire'), ('Greater Manchester', 'Greater Manchester'), ('Halton', 'Halton'), ('Hampshire', 'Hampshire'), ('Hartlepool', 'Hartlepool'), ('Herefordshire', 'Herefordshire'), ('Hertfordshire', 'Hertfordshire'), ('Isle of Wight', 'Isle of Wight'), ('Kent', 'Kent'), ('Kingston upon Hull', 'Kingston upon Hull'), ('Lancashire', 'Lancashire'), ('Leicester', 'Leicester'), ('Leicestershire', 'Leicestershire'), ('Lincolnshire', 'Lincolnshire'), ('London', 'London'), ('Luton', 'Luton'), ('Medway', 'Medway'), ('Merseyside', 'Merseyside'), ('Middlesbrough', 'Middlesbrough'), ('Milton Keynes', 'Milton Keynes'), ('Norfolk', 'Norfolk'), ('North East Lincolnshire', 'North East Lincolnshire'), ('North Lincolnshire', 'North Lincolnshire'), ('North Somerset', 'North Somerset'), ('North Yorkshire', 'North Yorkshire'), ('Northamptonshire', 'Northamptonshire'), ('Northumberland', 'Northumberland'), ('Nottingham', 'Nottingham'), ('Nottinghamshire', 'Nottinghamshire'), ('Oxfordshire', 'Oxfordshire'), ('Peterborough', 'Peterborough'), ('Plymouth', 'Plymouth'), ('Poole', 'Poole'), ('Portsmouth', 'Portsmouth'), ('Redcar and Cleveland', 'Redcar and Cleveland'), ('Rutland', 'Rutland'), ('Shropshire', 'Shropshire'), ('Somerset', 'Somerset'), ('South Gloucestershire', 'South Gloucestershire'), ('South Yorkshire', 'South Yorkshire'), ('Southampton', 'Southampton'), ('Southend-on-Sea', 'Southend-on-Sea'), ('Staffordshire', 'Staffordshire'), ('Stockton-on-Tees', 'Stockton-on-Tees'), ('Stoke-on-Trent', 'Stoke-on-Trent'), ('Suffolk', 'Suffolk'), ('Surrey', 'Surrey'), ('Swindon', 'Swindon'), ('Telford and Wrekin', 'Telford and Wrekin'), ('Thurrock', 'Thurrock'), ('Torbay', 'Torbay'), ('Tyne and Wear', 'Tyne and Wear'), ('Warrington', 'Warrington'), ('Warwickshire', 'Warwickshire'), ('West Midlands', 'West Midlands'), ('West Sussex', 'West Sussex'), ('West Yorkshire', 'West Yorkshire'), ('Wiltshire', 'Wiltshire'), ('Worcestershire', 'Worcestershire'), ('York', 'York'), ('Antrim', 'Antrim'), ('Armagh', 'Armagh'), ('Down', 'Down'), ('Fermanagh', 'Fermanagh'), ('Londonderry', 'Londonderry'), ('Tyrone', 'Tyrone'), ('Blaenau Gwent', 'Blaenau Gwent'), ('Bridgend', 'Bridgend'), ('Caerphilly', 'Caerphilly'), ('Cardiff', 'Cardiff'), ('Carmarthenshire', 'Carmarthenshire'), ('Ceredigion', 'Ceredigion'), ('Conwy', 'Conwy'), ('Denbighshire', 'Denbighshire'), ('Flintshire', 'Flintshire'), ('Gwynedd', 'Gwynedd'), ('Isle of Anglesey', 'Isle of Anglesey'), ('Merthyr Tydfil', 'Merthyr Tydfil'), ('Monmouthshire', 'Monmouthshire'), ('Neath Port Talbot', 'Neath Port Talbot'), ('Newport', 'Newport'), ('Pembrokeshire', 'Pembrokeshire'), ('Powys', 'Powys'), ('Rhondda Cynon Taf', 'Rhondda Cynon Taf'), ('Swansea', 'Swansea'), ('Torfaen', 'Torfaen'), ('Vale of Glamorgan', 'Vale of Glamorgan'), ('Wrexham', 'Wrexham'), ('Aberdeen City', 'Aberdeen City'), ('Aberdeenshire', 'Aberdeenshire'), ('Angus', 'Angus'), ('Argyll and Bute', 'Argyll and Bute'), ('Clackmannanshire', 'Clackmannanshire'), ('Dumfries and Galloway', 'Dumfries and Galloway'), ('Dundee City', 'Dundee City'), ('East Ayrshire', 'East Ayrshire'), ('East Dunbartonshire', 'East Dunbartonshire'), ('East Lothian', 'East Lothian'), ('East Renfrewshire', 'East Renfrewshire'), ('Edinburgh, City of ', 'Edinburgh, City of'), ('Falkirk', 'Falkirk'), ('Fife', 'Fife'), ('Glasgow City', 'Glasgow City'), ('Highland', 'Highland'), ('Inverclyde', 'Inverclyde'), ('Midlothian', 'Midlothian'), ('Moray', 'Moray'), ('North Ayrshire', 'North Ayrshire'), ('North Lanarkshire', 'North Lanarkshire'), ('Perth and Kinross', 'Perth and Kinross'), ('Renfrewshire', 'Renfrewshire'), ('Scottish Borders', 'Scottish Borders'), ('South Ayrshire', 'South Ayrshire'), ('South Lanarkshire', 'South Lanarkshire'), ('Stirling', 'Stirling'), ('West Dunbartonshire', 'West Dunbartonshire'), ('West Lothian', 'West Lothian'), ('Na h-Eileanan Siar', 'Na h-Eileanan Siar'), ('Orkney Islands', 'Orkney Islands'), ('Shetland Islands', 'Shetland Islands'))

All regions of United Kingdom

localflavor.gb.gb_regions.NORTHERN_IRELAND_REGION_CHOICES = (('Antrim', 'Antrim'), ('Armagh', 'Armagh'), ('Down', 'Down'), ('Fermanagh', 'Fermanagh'), ('Londonderry', 'Londonderry'), ('Tyrone', 'Tyrone'))

Counties of Northern Ireland (not the more recent, but less well-known, districts of Northern Ireland) Retrieved 10th Nov 2014 from http://en.wikipedia.org/wiki/Counties_of_Northern_Ireland

localflavor.gb.gb_regions.SCOTTISH_REGION_CHOICES = (('Aberdeen City', 'Aberdeen City'), ('Aberdeenshire', 'Aberdeenshire'), ('Angus', 'Angus'), ('Argyll and Bute', 'Argyll and Bute'), ('Clackmannanshire', 'Clackmannanshire'), ('Dumfries and Galloway', 'Dumfries and Galloway'), ('Dundee City', 'Dundee City'), ('East Ayrshire', 'East Ayrshire'), ('East Dunbartonshire', 'East Dunbartonshire'), ('East Lothian', 'East Lothian'), ('East Renfrewshire', 'East Renfrewshire'), ('Edinburgh, City of ', 'Edinburgh, City of'), ('Falkirk', 'Falkirk'), ('Fife', 'Fife'), ('Glasgow City', 'Glasgow City'), ('Highland', 'Highland'), ('Inverclyde', 'Inverclyde'), ('Midlothian', 'Midlothian'), ('Moray', 'Moray'), ('North Ayrshire', 'North Ayrshire'), ('North Lanarkshire', 'North Lanarkshire'), ('Perth and Kinross', 'Perth and Kinross'), ('Renfrewshire', 'Renfrewshire'), ('Scottish Borders', 'Scottish Borders'), ('South Ayrshire', 'South Ayrshire'), ('South Lanarkshire', 'South Lanarkshire'), ('Stirling', 'Stirling'), ('West Dunbartonshire', 'West Dunbartonshire'), ('West Lothian', 'West Lothian'), ('Na h-Eileanan Siar', 'Na h-Eileanan Siar'), ('Orkney Islands', 'Orkney Islands'), ('Shetland Islands', 'Shetland Islands'))

Council areas of Scotland Retrieved 10th Nov 2014 from http://en.wikipedia.org/wiki/Subdivisions_of_Scotland#Council_areas

localflavor.gb.gb_regions.WALES_REGION_CHOICES = (('Blaenau Gwent', 'Blaenau Gwent'), ('Bridgend', 'Bridgend'), ('Caerphilly', 'Caerphilly'), ('Cardiff', 'Cardiff'), ('Carmarthenshire', 'Carmarthenshire'), ('Ceredigion', 'Ceredigion'), ('Conwy', 'Conwy'), ('Denbighshire', 'Denbighshire'), ('Flintshire', 'Flintshire'), ('Gwynedd', 'Gwynedd'), ('Isle of Anglesey', 'Isle of Anglesey'), ('Merthyr Tydfil', 'Merthyr Tydfil'), ('Monmouthshire', 'Monmouthshire'), ('Neath Port Talbot', 'Neath Port Talbot'), ('Newport', 'Newport'), ('Pembrokeshire', 'Pembrokeshire'), ('Powys', 'Powys'), ('Rhondda Cynon Taf', 'Rhondda Cynon Taf'), ('Swansea', 'Swansea'), ('Torfaen', 'Torfaen'), ('Vale of Glamorgan', 'Vale of Glamorgan'), ('Wrexham', 'Wrexham'))

Principal areas of Wales (not the preserved or historic counties) Retrieved 10th Nov 2014 from http://en.wikipedia.org/wiki/Local_government_in_Wales

Greece (gr)

Forms

Greek-specific forms helpers

class localflavor.gr.forms.GRMobilePhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Greek mobile phone field - 10 digits starting with 69 (could also start with +30 which is the country-code foor greece)

class localflavor.gr.forms.GRPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Greek general phone field - 10 digits (can also start with +30 which is the country-code foor greece)

class localflavor.gr.forms.GRPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

Greek Postal code field. Format: XXXXX, where X is any digit, and first digit is not 0 or 9.

class localflavor.gr.forms.GRTaxNumberCodeField(allow_test_value=False, *args, **kwargs)[source]

Greek tax number field. The allow_test_value option can be used to enable the usage of the non valid 000000000 value for testing and development

Hong Kong (hk)

Forms

Hong Kong specific Form helpers

class localflavor.hk.forms.HKPhoneNumberField(*args, **kwargs)[source]

A form field that validates Hong Kong phone numbers.

The input format can be either one of the followings: ‘XXXX-XXXX’, ‘852-XXXX-XXXX’, ‘(+852) XXXX-XXXX’, ‘XXXX XXXX’, or ‘XXXXXXXX’. The output format is ‘XXXX-XXXX’.

Note: The phone number shall not start with 999, 992, or 112.
And, it should start with either 2, 3, 5, 6, 8, or 9.

http://en.wikipedia.org/wiki/Telephone_numbers_in_Hong_Kong

Croatia (hr)

Forms

HR-specific Form helpers

class localflavor.hr.forms.HRCountySelect(attrs=None)[source]

A Select widget that uses a list of counties of Croatia as its choices.

class localflavor.hr.forms.HRJMBAGField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Unique Master Academic Citizen Number of Croatia (JMBAG) field. This number is used by college students and professors in Croatia.

http://www.cap.srce.hr/IzgledX.aspx

class localflavor.hr.forms.HRJMBGField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Unique Master Citizen Number (JMBG) field. The number is still in use in Croatia, but it is being replaced by OIB.

Source: http://en.wikipedia.org/wiki/Unique_Master_Citizen_Number

For who might be reimplementing: The “area” regular expression group is used to calculate the region where a person was registered. Additional validation can be implemented in accordance with it, however this could result in exclusion of legit immigrated citizens. Therefore, this field works for any ex-Yugoslavia country.

class localflavor.hr.forms.HRLicensePlateField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Vehicle license plate of Croatia field. Normalizes to the specific format below. Suffix is constructed from the shared letters of the Croatian and English alphabets.

Format examples:
SB 123-A (but also supports more characters) ZG 1234-AA

Used for standardized license plates only.

class localflavor.hr.forms.HRLicensePlatePrefixSelect(attrs=None)[source]

A Select widget that uses a list of vehicle license plate prefixes of Croatia as its choices.

class localflavor.hr.forms.HROIBField(min_length=11, max_length=11, *args, **kwargs)[source]

Personal Identification Number of Croatia (OIB) field.

http://www.oib.hr/

class localflavor.hr.forms.HRPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Phone number of Croatia field. Format: Complete country code or leading zero, area code prefix, 6 or 7 digit number. Validates fixed, mobile and FGSM numbers. Normalizes to a full number with country code (+385 prefix).

class localflavor.hr.forms.HRPhoneNumberPrefixSelect(attrs=None)[source]

A Select widget that uses a list of phone number prefixes of Croatia as its choices.

class localflavor.hr.forms.HRPostalCodeField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Postal code of Croatia field. It consists of exactly five digits ranging from 10000 to possibly less than 60000.

http://www.posta.hr/main.aspx?id=66

Data

localflavor.hr.hr_choices.HR_COUNTY_CHOICES = (('GZG', 'Grad Zagreb'), ('BBŽ', 'Bjelovarsko-bilogorska županija'), ('BPŽ', 'Brodsko-posavska županija'), ('DNŽ', 'Dubrovačko-neretvanska županija'), ('IŽ', 'Istarska županija'), ('KŽ', 'Karlovačka županija'), ('KKŽ', 'Koprivničko-križevačka županija'), ('KZŽ', 'Krapinsko-zagorska županija'), ('LSŽ', 'Ličko-senjska županija'), ('MŽ', 'Međimurska županija'), ('OBŽ', 'Osječko-baranjska županija'), ('PSŽ', 'Požeško-slavonska županija'), ('PGŽ', 'Primorsko-goranska županija'), ('SMŽ', 'Sisačko-moslavačka županija'), ('SDŽ', 'Splitsko-dalmatinska županija'), ('ŠKŽ', 'Šibensko-kninska županija'), ('VŽ', 'Varaždinska županija'), ('VPŽ', 'Virovitičko-podravska županija'), ('VSŽ', 'Vukovarsko-srijemska županija'), ('ZDŽ', 'Zadarska županija'), ('ZGŽ', 'Zagrebačka županija'))

Croatian Counties: http://en.wikipedia.org/wiki/ISO_3166-2:HR Croatia doesn’t have official abbreviations for counties. The ones provided are in common use.

localflavor.hr.hr_choices.HR_LICENSE_PLATE_PREFIX_CHOICES = (('BJ', 'BJ'), ('BM', 'BM'), ('ČK', 'ČK'), ('DA', 'DA'), ('DE', 'DE'), ('DJ', 'DJ'), ('DU', 'DU'), ('GS', 'GS'), ('IM', 'IM'), ('KA', 'KA'), ('KC', 'KC'), ('KR', 'KR'), ('KT', 'KT'), ('KŽ', 'KŽ'), ('MA', 'MA'), ('NA', 'NA'), ('NG', 'NG'), ('OG', 'OG'), ('OS', 'OS'), ('PU', 'PU'), ('PŽ', 'PŽ'), ('RI', 'RI'), ('SB', 'SB'), ('SK', 'SK'), ('SL', 'SL'), ('ST', 'ST'), ('ŠI', 'ŠI'), ('VK', 'VK'), ('VT', 'VT'), ('VU', 'VU'), ('VŽ', 'VŽ'), ('ZD', 'ZD'), ('ZG', 'ZG'), ('ŽU', 'ŽU'))

Only common license plate prefixes are provided. Special cases and obsolete prefixes are omitted. http://hr.wikipedia.org/wiki/Dodatak:Popis_registracijskih_oznaka_za_cestovna_vozila_u_Hrvatskoj

localflavor.hr.hr_choices.HR_PHONE_NUMBER_PREFIX_CHOICES = (('1', '01'), ('20', '020'), ('21', '021'), ('22', '022'), ('23', '023'), ('31', '031'), ('32', '032'), ('33', '033'), ('34', '034'), ('35', '035'), ('40', '040'), ('42', '042'), ('43', '043'), ('44', '044'), ('47', '047'), ('48', '048'), ('49', '049'), ('51', '051'), ('52', '052'), ('53', '053'), ('91', '091'), ('92', '092'), ('95', '095'), ('97', '097'), ('98', '098'), ('99', '099'))

The list includes county and cellular network phone number prefixes.

Hungary (hu)

Forms

HU-specific Form helpers

class localflavor.hu.forms.HUCountySelect(attrs=None)[source]

A Select widget that uses a list of Hungarian Counties as its choices.

New in version 1.3.

Data

localflavor.hu.hu_counties.HU_COUNTY_CHOICES = (('bacs_kiskun', 'Bács-Kiskun'), ('baranya', 'Baranya'), ('bekes', 'Békés'), ('borsod_abauj_zemplen', 'Borsod-Abaúj-Zemplén'), ('csongrad', 'Csongrád'), ('fejer', 'Fejér'), ('gyor_moson_sopron', 'Győr-Moson-Sopron'), ('hajdu_bihar', 'Hajdú-Bihar'), ('heves', 'Heves'), ('jasz_nagykun_szolnok', 'Jász-Nagykun-Szolnok'), ('komarom_esztergom', 'Komárom-Esztergom'), ('nograd', 'Nógrád'), ('pest', 'Pest'), ('somogy', 'Somogy'), ('szabolcs_szatmar_bereg', 'Szabolcs-Szatmár-Bereg'), ('tolna', 'Tolna'), ('vas', 'Vas'), ('veszprem', 'Veszprém'), ('zala', 'Zala'))

Hungarian counties: https://en.wikipedia.org/wiki/Counties_of_Hungary

Indonesia (id)

Forms

ID-specific Form helpers

class localflavor.id_.forms.IDLicensePlateField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

An Indonesian vehicle license plate field.

http://id.wikipedia.org/wiki/Tanda_Nomor_Kendaraan_Bermotor

Plus: “B 12345 12”

class localflavor.id_.forms.IDLicensePlatePrefixSelect(attrs=None)[source]

A Select widget that uses a list of vehicle license plate prefix code of Indonesia as its choices.

http://id.wikipedia.org/wiki/Tanda_Nomor_Kendaraan_Bermotor

class localflavor.id_.forms.IDNationalIdentityNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

An Indonesian national identity number (NIK/KTP#) field.

http://id.wikipedia.org/wiki/Nomor_Induk_Kependudukan

xx.xxxx.ddmmyy.xxxx - 16 digits (excl. dots)

class localflavor.id_.forms.IDPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

An Indonesian telephone number field.

http://id.wikipedia.org/wiki/Daftar_kode_telepon_di_Indonesia

class localflavor.id_.forms.IDPostCodeField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

An Indonesian post code field.

http://id.wikipedia.org/wiki/Kode_pos

class localflavor.id_.forms.IDProvinceSelect(attrs=None)[source]

A Select widget that uses a list of provinces of Indonesia as its choices.

Data

localflavor.id_.id_choices.PROVINCE_CHOICES = (('ACE', 'Aceh'), ('BLI', 'Bali'), ('BTN', 'Banten'), ('BKL', 'Bengkulu'), ('DIY', 'Yogyakarta'), ('JKT', 'Jakarta'), ('GOR', 'Gorontalo'), ('JMB', 'Jambi'), ('JBR', 'Jawa Barat'), ('JTG', 'Jawa Tengah'), ('JTM', 'Jawa Timur'), ('KBR', 'Kalimantan Barat'), ('KSL', 'Kalimantan Selatan'), ('KTG', 'Kalimantan Tengah'), ('KTM', 'Kalimantan Timur'), ('BBL', 'Kepulauan Bangka-Belitung'), ('KRI', 'Kepulauan Riau'), ('LPG', 'Lampung'), ('MLK', 'Maluku'), ('MUT', 'Maluku Utara'), ('NTB', 'Nusa Tenggara Barat'), ('NTT', 'Nusa Tenggara Timur'), ('PPA', 'Papua'), ('PPB', 'Papua Barat'), ('RIU', 'Riau'), ('SLB', 'Sulawesi Barat'), ('SLS', 'Sulawesi Selatan'), ('SLT', 'Sulawesi Tengah'), ('SLR', 'Sulawesi Tenggara'), ('SLU', 'Sulawesi Utara'), ('SMB', 'Sumatera Barat'), ('SMS', 'Sumatera Selatan'), ('SMU', 'Sumatera Utara'))

Indonesia does not have an official Province code standard. I decided to use unambiguous and consistent (some are common) 3-letter codes. http://id.wikipedia.org/wiki/Daftar_provinsi_Indonesia

localflavor.id_.id_choices.LICENSE_PLATE_PREFIX_CHOICES = (('A', 'Banten'), ('AA', 'Magelang'), ('AB', 'Yogyakarta'), ('AD', 'Surakarta - Solo'), ('AE', 'Madiun'), ('AG', 'Kediri'), ('B', 'Jakarta'), ('BA', 'Sumatera Barat'), ('BB', 'Tapanuli'), ('BD', 'Bengkulu'), ('BE', 'Lampung'), ('BG', 'Sumatera Selatan'), ('BH', 'Jambi'), ('BK', 'Sumatera Utara'), ('BL', 'Nanggroe Aceh Darussalam'), ('BM', 'Riau'), ('BN', 'Kepulauan Bangka Belitung'), ('BP', 'Kepulauan Riau'), ('CC', 'Corps Consulate'), ('CD', 'Corps Diplomatic'), ('D', 'Bandung'), ('DA', 'Kalimantan Selatan'), ('DB', 'Sulawesi Utara Daratan'), ('DC', 'Sulawesi Barat'), ('DD', 'Sulawesi Selatan'), ('DE', 'Maluku'), ('DG', 'Maluku Utara'), ('DH', 'NTT - Timor'), ('DK', 'Bali'), ('DL', 'Sulawesi Utara Kepulauan'), ('DM', 'Gorontalo'), ('DN', 'Sulawesi Tengah'), ('DR', 'NTB - Lombok'), ('DS', 'Papua dan Papua Barat'), ('DT', 'Sulawesi Tenggara'), ('E', 'Cirebon'), ('EA', 'NTB - Sumbawa'), ('EB', 'NTT - Flores'), ('ED', 'NTT - Sumba'), ('F', 'Bogor'), ('G', 'Pekalongan'), ('H', 'Semarang'), ('K', 'Pati'), ('KB', 'Kalimantan Barat'), ('KH', 'Kalimantan Tengah'), ('KT', 'Kalimantan Timur'), ('L', 'Surabaya'), ('M', 'Madura'), ('N', 'Malang'), ('P', 'Jember'), ('R', 'Banyumas'), ('RI', 'Federal Government'), ('S', 'Bojonegoro'), ('T', 'Purwakarta'), ('W', 'Sidoarjo'), ('Z', 'Garut'))

License plate prefixes

Ireland (ie)

Forms

UK-specific Form helpers

class localflavor.ie.forms.IECountySelect(attrs=None)[source]

A Select widget that uses a list of Irish Counties as its choices.

Data

localflavor.ie.ie_counties.IE_COUNTY_CHOICES = (('carlow', 'Carlow'), ('cavan', 'Cavan'), ('clare', 'Clare'), ('cork', 'Cork'), ('donegal', 'Donegal'), ('dublin', 'Dublin'), ('galway', 'Galway'), ('kerry', 'Kerry'), ('kildare', 'Kildare'), ('kilkenny', 'Kilkenny'), ('laois', 'Laois'), ('leitrim', 'Leitrim'), ('limerick', 'Limerick'), ('longford', 'Longford'), ('louth', 'Louth'), ('mayo', 'Mayo'), ('meath', 'Meath'), ('monaghan', 'Monaghan'), ('offaly', 'Offaly'), ('roscommon', 'Roscommon'), ('sligo', 'Sligo'), ('tipperary', 'Tipperary'), ('waterford', 'Waterford'), ('westmeath', 'Westmeath'), ('wexford', 'Wexford'), ('wicklow', 'Wicklow'))

Irish Counties: http://en.wikipedia.org/wiki/Counties_of_Ireland

Israel (il)

Forms

Israeli-specific form helpers

class localflavor.il.forms.ILIDNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input as an Israeli identification number. Valid form is per the Israeli ID specification.

Israeli ID numbers consist of up to 8 digits followed by a checksum digit. Numbers which are shorter than 8 digits are effectively left-zero-padded. The checksum digit is occasionally separated from the number by a hyphen, and is calculated using the luhn algorithm.

Relevant references (in Hewbrew):

http://he.wikipedia.org/wiki/%D7%9E%D7%A1%D7%A4%D7%A8_%D7%96%D7%94%D7%95%D7%AA_(%D7%99%D7%A9%D7%A8%D7%90%D7%9C) http://he.wikipedia.org/wiki/%D7%A1%D7%A4%D7%A8%D7%AA_%D7%91%D7%99%D7%A7%D7%95%D7%A8%D7%AA http://he.wikipedia.org/wiki/%D7%A7%D7%99%D7%93%D7%95%D7%9E%D7%AA_%D7%98%D7%9C%D7%A4%D7%95%D7%9F_%D7%91%D7%99%D7%A9%D7%A8%D7%90%D7%9C#.D7.A7.D7.99.D7.93.D7.95.D7.9E.D7.95.D7.AA_.D7.91.D7.99.D7.A9.D7.A8.D7.90.D7.9C_.D7.9C.D7.A4.D7.99_.D7.9E.D7.A4.D7.A2.D7.99.D7.9C.D7.99.D7.9D_.D7.95.D7.97.D7.9C.D7.95.D7.A7.D7.94_.D7.92.D7.90.D7.95.D7.92.D7.A8.D7.A4.D7.99.D7.AA

class localflavor.il.forms.ILMobilePhoneNumberField(*args, **kwargs)[source]

A form field that validates its input as an Israeli Mobile phone number.

class localflavor.il.forms.ILPostalCodeField(*args, **kwargs)[source]

A form field that validates its input as an Israeli postal code. Valid form is XXXXX where X represents integer.

India (in)

Forms

India-specific Form helpers.

class localflavor.in_.forms.INAadhaarNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field for Aadhaar number issued by Unique Identification Authority of India (UIDAI).

Checks the following rules to determine whether the number is valid:

  • Conforms to the XXXX XXXX XXXX format.
  • No group consists entirely of zeroes.

Important information:

  • Aadhaar number is a proof of identity but not of citizenship.
  • Aadhaar number is issued to every resident of India including foreign citizens.
  • Aadhaar number is not mandatory.

More information can be found at http://uidai.gov.in/what-is-aadhaar-number.html

class localflavor.in_.forms.INPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

INPhoneNumberField validates that the data is a valid Indian phone number, including the STD code. It’s normalised to 0XXX-XXXXXXX or 0XXX XXXXXXX format. The first string is the STD code which is a ‘0’ followed by 2-4 digits. The second string is 8 digits if the STD code is 3 digits, 7 digits if the STD code is 4 digits and 6 digits if the STD code is 5 digits. The second string will start with numbers between 1 and 6. The separator is either a space or a hyphen.

class localflavor.in_.forms.INStateField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input is a Indian state name or abbreviation. It normalizes the input to the standard two-letter vehicle registration abbreviation for the given state or union territory

Changed in version 1.1: Added Telangana to list of states. More details at https://en.wikipedia.org/wiki/Telangana#Bifurcation_of_Andhra_Pradesh

class localflavor.in_.forms.INStateSelect(attrs=None)[source]

A Select widget that uses a list of Indian states/territories as its choices.

Changed in version 1.1: Added Telangana to list of states. More details at https://en.wikipedia.org/wiki/Telangana#Bifurcation_of_Andhra_Pradesh

class localflavor.in_.forms.INZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as an Indian zip code, with the format XXXXXXX.

Data

localflavor.in_.in_states.STATE_CHOICES = (('KA', 'Karnataka'), ('AP', 'Andhra Pradesh'), ('KL', 'Kerala'), ('TN', 'Tamil Nadu'), ('MH', 'Maharashtra'), ('UP', 'Uttar Pradesh'), ('GA', 'Goa'), ('GJ', 'Gujarat'), ('RJ', 'Rajasthan'), ('HP', 'Himachal Pradesh'), ('JK', 'Jammu and Kashmir'), ('TG', 'Telangana'), ('AR', 'Arunachal Pradesh'), ('AS', 'Assam'), ('BR', 'Bihar'), ('CG', 'Chattisgarh'), ('HR', 'Haryana'), ('JH', 'Jharkhand'), ('MP', 'Madhya Pradesh'), ('MN', 'Manipur'), ('ML', 'Meghalaya'), ('MZ', 'Mizoram'), ('NL', 'Nagaland'), ('OR', 'Orissa'), ('PB', 'Punjab'), ('SK', 'Sikkim'), ('TR', 'Tripura'), ('UA', 'Uttarakhand'), ('WB', 'West Bengal'), ('AN', 'Andaman and Nicobar'), ('CH', 'Chandigarh'), ('DN', 'Dadra and Nagar Haveli'), ('DD', 'Daman and Diu'), ('DL', 'Delhi'), ('LD', 'Lakshadweep'), ('PY', 'Pondicherry'))

A list of states

localflavor.in_.in_states.STATES_NORMALIZED = {'maharashtra': 'MH', 'cg': 'CG', 'dd': 'DD', 'daman and diu': 'DD', 'nl': 'NL', 'br': 'BR', 'dl': 'DL', 'tripura': 'TR', 'lakshadweep': 'LD', 'or': 'OR', 'himachal pradesh': 'HP', 'sk': 'SK', 'wb': 'WB', 'andhrapradesh': 'AP', 'kerala': 'KL', 'jammu and kashmir': 'JK', 'mizo': 'MZ', 'an': 'AN', 'jh': 'JH', 'nagaland': 'NL', 'as': 'AS', 'haryana': 'HR', 'andhra pradesh': 'AP', 'ml': 'ML', 'mh': 'MH', 'westbengal': 'WB', 'jharkhand': 'JH', 'mp': 'MP', 'chattisgarh': 'CG', 'meghalaya': 'ML', 'pondicherry': 'PY', 'ua': 'UA', 'karnatka': 'KA', 'uttarakhand': 'UA', 'delhi': 'DL', 'west bengal': 'WB', 'goa': 'GA', 'maharastra': 'MH', 'andaman and nicobar': 'AN', 'punjab': 'PB', 'tamilnad': 'TN', 'py': 'PY', 'bihar': 'BR', 'tr': 'TR', 'gujarat': 'GJ', 'ka': 'KA', 'rj': 'RJ', 'arunachal pradesh': 'AR', 'manipur': 'MN', 'gj': 'GJ', 'rajastan': 'RJ', 'ga': 'GA', 'tamilnadu': 'TN', 'tg': 'TG', 'ch': 'CH', 'chandigarh': 'CH', 'assam': 'AS', 'ld': 'LD', 'andra pradesh': 'AP', 'rajasthan': 'RJ', 'mn': 'MN', 'ar': 'AR', 'up': 'UP', 'karnataka': 'KA', 'andrapradesh': 'AP', 'pb': 'PB', 'jk': 'JK', 'tamil nadu': 'TN', 'telangana': 'TG', 'madhya pradesh': 'MP', 'mz': 'MZ', 'orissa': 'OR', 'hr': 'HR', 'tn': 'TN', 'dadra and nagar haveli': 'DN', 'kl': 'KL', 'orisa': 'OR', 'uttar pradesh': 'UP', 'bengal': 'WB', 'ap': 'AP', 'hp': 'HP', 'sikkim': 'SK', 'mizoram': 'MZ', 'dn': 'DN', 'odisa': 'OR'}

Normalized state names

Iceland (is)

Forms

Iceland specific form helpers.

class localflavor.is_.forms.ISIdNumberField(max_length=11, min_length=10, *args, **kwargs)[source]

Icelandic identification number (kennitala). This is a number every citizen of Iceland has.

class localflavor.is_.forms.ISPhoneNumberField(max_length=8, min_length=7, *args, **kwargs)[source]

Icelandic phone number. Seven digits with an optional hyphen or space after the first three digits.

class localflavor.is_.forms.ISPostalCodeSelect(attrs=None)[source]

A Select widget that uses a list of Icelandic postal codes as its choices.

Data

localflavor.is_.is_postalcodes.IS_POSTALCODES = (('101', '101 Reykjavík'), ('103', '103 Reykjavík'), ('104', '104 Reykjavík'), ('105', '105 Reykjavík'), ('107', '107 Reykjavík'), ('108', '108 Reykjavík'), ('109', '109 Reykjavík'), ('110', '110 Reykjavík'), ('111', '111 Reykjavík'), ('112', '112 Reykjavík'), ('113', '113 Reykjavík'), ('116', '116 Kjalarnes'), ('121', '121 Reykjavík'), ('123', '123 Reykjavík'), ('124', '124 Reykjavík'), ('125', '125 Reykjavík'), ('127', '127 Reykjavík'), ('128', '128 Reykjavík'), ('129', '129 Reykjavík'), ('130', '130 Reykjavík'), ('132', '132 Reykjavík'), ('150', '150 Reykjavík'), ('155', '155 Reykjavík'), ('170', '170 Seltjarnarnes'), ('172', '172 Seltjarnarnes'), ('190', '190 Vogar'), ('200', '200 Kópavogur'), ('201', '201 Kópavogur'), ('202', '202 Kópavogur'), ('203', '203 Kópavogur'), ('210', '210 Garðabær'), ('212', '212 Garðabær'), ('220', '220 Hafnarfjörður'), ('221', '221 Hafnarfjörður'), ('222', '222 Hafnarfjörður'), ('225', '225 Álftanes'), ('230', '230 Reykjanesbær'), ('232', '232 Reykjanesbær'), ('233', '233 Reykjanesbær'), ('235', '235 Keflavíkurflugvöllur'), ('240', '240 Grindavík'), ('245', '245 Sandgerði'), ('250', '250 Garður'), ('260', '260 Reykjanesbær'), ('270', '270 Mosfellsbær'), ('271', '271 Mosfellsbær'), ('276', '276 Mosfellsbær'), ('300', '300 Akranes'), ('301', '301 Akranes'), ('302', '302 Akranes'), ('310', '310 Borgarnes'), ('311', '311 Borgarnes'), ('320', '320 Reykholt í Borgarfirði'), ('340', '340 Stykkishólmur'), ('345', '345 Flatey á Breiðafirði'), ('350', '350 Grundarfjörður'), ('355', '355 Ólafsvík'), ('356', '356 Snæfellsbær'), ('360', '360 Hellissandur'), ('370', '370 Búðardalur'), ('371', '371 Búðardalur'), ('380', '380 Reykhólahreppur'), ('400', '400 Ísafjörður'), ('401', '401 Ísafjörður'), ('410', '410 Hnífsdalur'), ('415', '415 Bolungarvík'), ('420', '420 Súðavík'), ('425', '425 Flateyri'), ('430', '430 Suðureyri'), ('450', '450 Patreksfjörður'), ('451', '451 Patreksfjörður'), ('460', '460 Tálknafjörður'), ('465', '465 Bíldudalur'), ('470', '470 Þingeyri'), ('471', '471 Þingeyri'), ('500', '500 Staður'), ('510', '510 Hólmavík'), ('512', '512 Hólmavík'), ('520', '520 Drangsnes'), ('522', '522 Kjörvogur'), ('523', '523 Bær'), ('524', '524 Norðurfjörður'), ('530', '530 Hvammstangi'), ('531', '531 Hvammstangi'), ('540', '540 Blönduós'), ('541', '541 Blönduós'), ('545', '545 Skagaströnd'), ('550', '550 Sauðárkrókur'), ('551', '551 Sauðárkrókur'), ('560', '560 Varmahlíð'), ('565', '565 Hofsós'), ('566', '566 Hofsós'), ('570', '570 Fljót'), ('580', '580 Siglufjörður'), ('600', '600 Akureyri'), ('601', '601 Akureyri'), ('602', '602 Akureyri'), ('603', '603 Akureyri'), ('610', '610 Grenivík'), ('611', '611 Grímsey'), ('620', '620 Dalvík'), ('621', '621 Dalvík'), ('625', '625 Ólafsfjörður'), ('630', '630 Hrísey'), ('640', '640 Húsavík'), ('641', '641 Húsavík'), ('645', '645 Fosshóll'), ('650', '650 Laugar'), ('660', '660 Mývatn'), ('670', '670 Kópasker'), ('671', '671 Kópasker'), ('675', '675 Raufarhöfn'), ('680', '680 Þórshöfn'), ('681', '681 Þórshöfn'), ('685', '685 Bakkafjörður'), ('690', '690 Vopnafjörður'), ('700', '700 Egilsstaðir'), ('701', '701 Egilsstaðir'), ('710', '710 Seyðisfjörður'), ('715', '715 Mjóifjörður'), ('720', '720 Borgarfjörður eystri'), ('730', '730 Reyðarfjörður'), ('735', '735 Eskifjörður'), ('740', '740 Neskaupstaður'), ('750', '750 Fáskrúðsfjörður'), ('755', '755 Stöðvarfjörður'), ('760', '760 Breiðdalsvík'), ('765', '765 Djúpivogur'), ('780', '780 Höfn í Hornafirði'), ('781', '781 Höfn í Hornafirði'), ('785', '785 Öræfi'), ('800', '800 Selfoss'), ('801', '801 Selfoss'), ('802', '802 Selfoss'), ('810', '810 Hveragerði'), ('815', '815 Þorlákshöfn'), ('816', '816 Ölfus'), ('820', '820 Eyrarbakki'), ('825', '825 Stokkseyri'), ('840', '840 Laugarvatn'), ('845', '845 Flúðir'), ('850', '850 Hella'), ('851', '851 Hella'), ('860', '860 Hvolsvöllur'), ('861', '861 Hvolsvöllur'), ('870', '870 Vík'), ('871', '871 Vík'), ('880', '880 Kirkjubæjarklaustur'), ('900', '900 Vestmannaeyjar'), ('902', '902 Vestmannaeyjar'))

A list of Icelandic postal codes

Italy (it)

Forms

IT-specific Form helpers

class localflavor.it.forms.ITPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as an Italian phone number. Will strip any +39 country prefix from the number.

New in version 1.1.

class localflavor.it.forms.ITProvinceSelect(attrs=None)[source]

A Select widget that uses a list of IT provinces as its choices.

class localflavor.it.forms.ITRegionProvinceSelect(attrs=None)[source]

A Select widget that uses a named group list of IT regions mapped to regions as its choices.

class localflavor.it.forms.ITRegionSelect(attrs=None)[source]

A Select widget that uses a list of IT regions as its choices.

class localflavor.it.forms.ITSocialSecurityNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates Italian Tax code (codice fiscale) for both persons and entities.

For reference see http://www.agenziaentrate.it/ and search for:

  • ‘Informazioni sulla codificazione delle persone fisiche’ for persons’ SSN
  • ‘Codice fiscale Modello AA5/6’ for entities’ SSN

Changed in version 1.1.

The ITSocialSecurityNumberField now also accepts SSN values for entities (numeric-only form).

class localflavor.it.forms.ITVatNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates Italian VAT numbers (partita IVA).

class localflavor.it.forms.ITZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as an Italian zip code. Valid codes must have five digits.

Utilities

localflavor.it.util.ssn_check_digit(value)[source]

Calculate Italian social security number check digit.

localflavor.it.util.ssn_validation(ssn_value)[source]

Validate Italian SSN for persons

ValueError is raised if validation fails.

localflavor.it.util.vat_number_check_digit(vat_number)[source]

Calculate Italian VAT number check digit.

localflavor.it.util.vat_number_validation(vat_number)[source]

Validate Italian VAT number. Used also for entities SSN validation.

ValueError is raised if validation fails.

Data

localflavor.it.it_province.PROVINCE_CHOICES = (('AG', 'Agrigento'), ('AL', 'Alessandria'), ('AN', 'Ancona'), ('AO', 'Aosta'), ('AR', 'Arezzo'), ('AP', 'Ascoli Piceno'), ('AT', 'Asti'), ('AV', 'Avellino'), ('BA', 'Bari'), ('BT', 'Barletta-Andria-Trani'), ('BL', 'Belluno'), ('BN', 'Benevento'), ('BG', 'Bergamo'), ('BI', 'Biella'), ('BO', 'Bologna'), ('BZ', 'Bolzano/Bozen'), ('BS', 'Brescia'), ('BR', 'Brindisi'), ('CA', 'Cagliari'), ('CL', 'Caltanissetta'), ('CB', 'Campobasso'), ('CI', 'Carbonia-Iglesias'), ('CE', 'Caserta'), ('CT', 'Catania'), ('CZ', 'Catanzaro'), ('CH', 'Chieti'), ('CO', 'Como'), ('CS', 'Cosenza'), ('CR', 'Cremona'), ('KR', 'Crotone'), ('CN', 'Cuneo'), ('EN', 'Enna'), ('FM', 'Fermo'), ('FE', 'Ferrara'), ('FI', 'Firenze'), ('FG', 'Foggia'), ('FC', 'Forlì-Cesena'), ('FR', 'Frosinone'), ('GE', 'Genova'), ('GO', 'Gorizia'), ('GR', 'Grosseto'), ('IM', 'Imperia'), ('IS', 'Isernia'), ('SP', 'La Spezia'), ('AQ', 'L’Aquila'), ('LT', 'Latina'), ('LE', 'Lecce'), ('LC', 'Lecco'), ('LI', 'Livorno'), ('LO', 'Lodi'), ('LU', 'Lucca'), ('MC', 'Macerata'), ('MN', 'Mantova'), ('MS', 'Massa-Carrara'), ('MT', 'Matera'), ('VS', 'Medio Campidano'), ('ME', 'Messina'), ('MI', 'Milano'), ('MO', 'Modena'), ('MB', 'Monza e Brianza'), ('NA', 'Napoli'), ('NO', 'Novara'), ('NU', 'Nuoro'), ('OG', 'Ogliastra'), ('OT', 'Olbia-Tempio'), ('OR', 'Oristano'), ('PD', 'Padova'), ('PA', 'Palermo'), ('PR', 'Parma'), ('PV', 'Pavia'), ('PG', 'Perugia'), ('PU', 'Pesaro e Urbino'), ('PE', 'Pescara'), ('PC', 'Piacenza'), ('PI', 'Pisa'), ('PT', 'Pistoia'), ('PN', 'Pordenone'), ('PZ', 'Potenza'), ('PO', 'Prato'), ('RG', 'Ragusa'), ('RA', 'Ravenna'), ('RC', 'Reggio Calabria'), ('RE', 'Reggio Emilia'), ('RI', 'Rieti'), ('RN', 'Rimini'), ('RM', 'Roma'), ('RO', 'Rovigo'), ('SA', 'Salerno'), ('SS', 'Sassari'), ('SV', 'Savona'), ('SI', 'Siena'), ('SR', 'Siracusa'), ('SO', 'Sondrio'), ('TA', 'Taranto'), ('TE', 'Teramo'), ('TR', 'Terni'), ('TO', 'Torino'), ('TP', 'Trapani'), ('TN', 'Trento'), ('TV', 'Treviso'), ('TS', 'Trieste'), ('UD', 'Udine'), ('VA', 'Varese'), ('VE', 'Venezia'), ('VB', 'Verbano Cusio Ossola'), ('VC', 'Vercelli'), ('VR', 'Verona'), ('VV', 'Vibo Valentia'), ('VI', 'Vicenza'), ('VT', 'Viterbo'))

An alphabetical list of provinces

localflavor.it.it_province.PROVINCE_REGIONS = {'EN': 'SIC', 'TO': 'PMN', 'AV': 'CAM', 'FI': 'TOS', 'PU': 'MAR', 'AT': 'PMN', 'SP': 'LIG', 'PA': 'SIC', 'AN': 'MAR', 'PE': 'ABR', 'LU': 'TOS', 'TN': 'TAA', 'FE': 'EMR', 'TS': 'FVG', 'CH': 'ABR', 'MB': 'LOM', 'SR': 'SIC', 'VB': 'PMN', 'AO': 'VAO', 'SI': 'TOS', 'VE': 'VEN', 'FR': 'LAZ', 'SA': 'CAM', 'PV': 'LOM', 'SO': 'LOM', 'PZ': 'BAS', 'VR': 'VEN', 'CI': 'SAR', 'FG': 'PUG', 'BA': 'PUG', 'CO': 'LOM', 'OG': 'SAR', 'GO': 'FVG', 'CB': 'MOL', 'SV': 'LIG', 'IM': 'LIG', 'BL': 'VEN', 'AG': 'SIC', 'MC': 'MAR', 'CT': 'SIC', 'UD': 'FVG', 'RN': 'EMR', 'CR': 'LOM', 'AP': 'MAR', 'ME': 'SIC', 'MO': 'EMR', 'NO': 'PMN', 'LT': 'LAZ', 'MT': 'BAS', 'NA': 'CAM', 'TP': 'SIC', 'VS': 'SAR', 'NU': 'SAR', 'CA': 'SAR', 'BZ': 'TAA', 'VI': 'VEN', 'CL': 'SIC', 'VC': 'PMN', 'RI': 'LAZ', 'PO': 'TOS', 'OT': 'SAR', 'RE': 'EMR', 'GR': 'TOS', 'RG': 'SIC', 'PD': 'VEN', 'LO': 'LOM', 'CN': 'PMN', 'AL': 'PMN', 'VA': 'LOM', 'TE': 'ABR', 'LC': 'LOM', 'BG': 'LOM', 'PT': 'TOS', 'TA': 'PUG', 'GE': 'LIG', 'BO': 'EMR', 'PR': 'EMR', 'PN': 'FVG', 'FM': 'MAR', 'TV': 'VEN', 'VV': 'CAL', 'CE': 'CAM', 'PG': 'UMB', 'BI': 'PMN', 'RM': 'LAZ', 'PC': 'EMR', 'AQ': 'ABR', 'IS': 'MOL', 'RA': 'EMR', 'LE': 'PUG', 'BT': 'PUG', 'RO': 'VEN', 'VT': 'LAZ', 'TR': 'UMB', 'RC': 'CAL', 'CS': 'CAL', 'AR': 'TOS', 'MN': 'LOM', 'MI': 'LOM', 'MS': 'TOS', 'CZ': 'CAL', 'PI': 'TOS', 'BN': 'CAM', 'BR': 'PUG', 'FC': 'EMR', 'KR': 'CAL', 'BS': 'LOM', 'LI': 'TOS', 'SS': 'SAR', 'OR': 'SAR'}

A dictionary of provinces mapped to regions

New in version 1.1.

localflavor.it.it_region.REGION_CHOICES = (('ABR', 'Abruzzo'), ('BAS', 'Basilicata'), ('CAL', 'Calabria'), ('CAM', 'Campania'), ('EMR', 'Emilia-Romagna'), ('FVG', 'Friuli-Venezia Giulia'), ('LAZ', 'Lazio'), ('LIG', 'Liguria'), ('LOM', 'Lombardia'), ('MAR', 'Marche'), ('MOL', 'Molise'), ('PMN', 'Piemonte'), ('PUG', 'Puglia'), ('SAR', 'Sardegna'), ('SIC', 'Sicilia'), ('TOS', 'Toscana'), ('TAA', 'Trentino-Alto Adige'), ('UMB', 'Umbria'), ('VAO', 'Valle d’Aosta'), ('VEN', 'Veneto'))

An alphabetical list of regions

localflavor.it.it_region.REGION_PROVINCES = {'SIC': ['AG', 'CL', 'CT', 'EN', 'ME', 'PA', 'RG', 'SR', 'TP'], 'MOL': ['CB', 'IS'], 'CAM': ['AV', 'BN', 'CE', 'NA', 'SA'], 'FVG': ['GO', 'PN', 'TS', 'UD'], 'VEN': ['BL', 'PD', 'RO', 'TV', 'VE', 'VI', 'VR'], 'LAZ': ['FR', 'LT', 'RI', 'RM', 'VT'], 'LOM': ['BG', 'BS', 'CO', 'CR', 'LC', 'LO', 'MB', 'MI', 'MN', 'PV', 'SO', 'VA'], 'CAL': ['CS', 'CZ', 'KR', 'RC', 'VV'], 'TOS': ['AR', 'FI', 'GR', 'LI', 'LU', 'MS', 'PI', 'PO', 'PT', 'SI'], 'SAR': ['CA', 'CI', 'NU', 'OG', 'OR', 'OT', 'SS', 'VS'], 'UMB': ['PG', 'TR'], 'PMN': ['AL', 'AT', 'BI', 'CN', 'NO', 'TO', 'VB', 'VC'], 'EMR': ['BO', 'FC', 'FE', 'MO', 'PC', 'PR', 'RA', 'RE', 'RN'], 'VAO': ['AO'], 'LIG': ['GE', 'IM', 'SP', 'SV'], 'BAS': ['MT', 'PZ'], 'ABR': ['AQ', 'CH', 'PE', 'TE'], 'PUG': ['BA', 'BR', 'BT', 'FG', 'LE', 'TA'], 'MAR': ['AN', 'AP', 'FM', 'MC', 'PU'], 'TAA': ['BZ', 'TN']}

A dictionary of regions mapped to provinces

New in version 1.1.

localflavor.it.it_region.REGION_PROVINCE_CHOICES = [('Abruzzo', (('CH', 'Chieti'), ('AQ', 'L’Aquila'), ('PE', 'Pescara'), ('TE', 'Teramo'))), ('Basilicata', (('MT', 'Matera'), ('PZ', 'Potenza'))), ('Calabria', (('CZ', 'Catanzaro'), ('CS', 'Cosenza'), ('KR', 'Crotone'), ('RC', 'Reggio Calabria'), ('VV', 'Vibo Valentia'))), ('Campania', (('AV', 'Avellino'), ('BN', 'Benevento'), ('CE', 'Caserta'), ('NA', 'Napoli'), ('SA', 'Salerno'))), ('Emilia-Romagna', (('BO', 'Bologna'), ('FE', 'Ferrara'), ('FC', 'Forlì-Cesena'), ('MO', 'Modena'), ('PR', 'Parma'), ('PC', 'Piacenza'), ('RA', 'Ravenna'), ('RE', 'Reggio Emilia'), ('RN', 'Rimini'))), ('Friuli-Venezia Giulia', (('GO', 'Gorizia'), ('PN', 'Pordenone'), ('TS', 'Trieste'), ('UD', 'Udine'))), ('Lazio', (('FR', 'Frosinone'), ('LT', 'Latina'), ('RI', 'Rieti'), ('RM', 'Roma'), ('VT', 'Viterbo'))), ('Liguria', (('GE', 'Genova'), ('IM', 'Imperia'), ('SP', 'La Spezia'), ('SV', 'Savona'))), ('Lombardia', (('BG', 'Bergamo'), ('BS', 'Brescia'), ('CO', 'Como'), ('CR', 'Cremona'), ('LC', 'Lecco'), ('LO', 'Lodi'), ('MN', 'Mantova'), ('MI', 'Milano'), ('MB', 'Monza e Brianza'), ('PV', 'Pavia'), ('SO', 'Sondrio'), ('VA', 'Varese'))), ('Marche', (('AN', 'Ancona'), ('AP', 'Ascoli Piceno'), ('FM', 'Fermo'), ('MC', 'Macerata'), ('PU', 'Pesaro e Urbino'))), ('Molise', (('CB', 'Campobasso'), ('IS', 'Isernia'))), ('Piemonte', (('AL', 'Alessandria'), ('AT', 'Asti'), ('BI', 'Biella'), ('CN', 'Cuneo'), ('NO', 'Novara'), ('TO', 'Torino'), ('VB', 'Verbano Cusio Ossola'), ('VC', 'Vercelli'))), ('Puglia', (('BA', 'Bari'), ('BT', 'Barletta-Andria-Trani'), ('BR', 'Brindisi'), ('FG', 'Foggia'), ('LE', 'Lecce'), ('TA', 'Taranto'))), ('Sardegna', (('CA', 'Cagliari'), ('CI', 'Carbonia-Iglesias'), ('VS', 'Medio Campidano'), ('NU', 'Nuoro'), ('OG', 'Ogliastra'), ('OT', 'Olbia-Tempio'), ('OR', 'Oristano'), ('SS', 'Sassari'))), ('Sicilia', (('AG', 'Agrigento'), ('CL', 'Caltanissetta'), ('CT', 'Catania'), ('EN', 'Enna'), ('ME', 'Messina'), ('PA', 'Palermo'), ('RG', 'Ragusa'), ('SR', 'Siracusa'), ('TP', 'Trapani'))), ('Toscana', (('AR', 'Arezzo'), ('FI', 'Firenze'), ('GR', 'Grosseto'), ('LI', 'Livorno'), ('LU', 'Lucca'), ('MS', 'Massa-Carrara'), ('PI', 'Pisa'), ('PT', 'Pistoia'), ('PO', 'Prato'), ('SI', 'Siena'))), ('Trentino-Alto Adige', (('BZ', 'Bolzano/Bozen'), ('TN', 'Trento'))), ('Umbria', (('PG', 'Perugia'), ('TR', 'Terni'))), ('Valle d’Aosta', (('AO', 'Aosta'),)), ('Veneto', (('BL', 'Belluno'), ('PD', 'Padova'), ('RO', 'Rovigo'), ('TV', 'Treviso'), ('VE', 'Venezia'), ('VR', 'Verona'), ('VI', 'Vicenza')))]

A alphabetical list of provinces mapped to regions

New in version 1.1.

Japan (jp)

Forms

JP-specific Form helpers

class localflavor.jp.forms.JPPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input is a Japanese postcode.

Accepts 7 digits, with or without a hyphen.

clean(value)[source]

Validates the input and returns a string that contains only numbers. Returns an empty string for empty values.

class localflavor.jp.forms.JPPrefectureCodeSelect(attrs=None)[source]

A Select widget that uses a list of Japanese prefectures as its choices and the prefectures code as the post value.

class localflavor.jp.forms.JPPrefectureSelect(attrs=None)[source]

A Select widget that uses a list of Japanese prefectures as its choices.

Data

localflavor.jp.jp_prefectures.JP_PREFECTURES = (('hokkaido', 'Hokkaido'), ('aomori', 'Aomori'), ('iwate', 'Iwate'), ('miyagi', 'Miyagi'), ('akita', 'Akita'), ('yamagata', 'Yamagata'), ('fukushima', 'Fukushima'), ('ibaraki', 'Ibaraki'), ('tochigi', 'Tochigi'), ('gunma', 'Gunma'), ('saitama', 'Saitama'), ('chiba', 'Chiba'), ('tokyo', 'Tokyo'), ('kanagawa', 'Kanagawa'), ('niigata', 'Niigata'), ('toyama', 'Toyama'), ('ishikawa', 'Ishikawa'), ('fukui', 'Fukui'), ('yamanashi', 'Yamanashi'), ('nagano', 'Nagano'), ('gifu', 'Gifu'), ('shizuoka', 'Shizuoka'), ('aichi', 'Aichi'), ('mie', 'Mie'), ('shiga', 'Shiga'), ('kyoto', 'Kyoto'), ('osaka', 'Osaka'), ('hyogo', 'Hyogo'), ('nara', 'Nara'), ('wakayama', 'Wakayama'), ('tottori', 'Tottori'), ('shimane', 'Shimane'), ('okayama', 'Okayama'), ('hiroshima', 'Hiroshima'), ('yamaguchi', 'Yamaguchi'), ('tokushima', 'Tokushima'), ('kagawa', 'Kagawa'), ('ehime', 'Ehime'), ('kochi', 'Kochi'), ('fukuoka', 'Fukuoka'), ('saga', 'Saga'), ('nagasaki', 'Nagasaki'), ('kumamoto', 'Kumamoto'), ('oita', 'Oita'), ('miyazaki', 'Miyazaki'), ('kagoshima', 'Kagoshima'), ('okinawa', 'Okinawa'))

A list of prefectures

Kuwait (kw)

Forms

Kuwait-specific Form helpers

class localflavor.kw.forms.KWCivilIDNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Kuwaiti Civil ID numbers are 12 digits, second to seventh digits represents the person’s birthdate.

Checks the following rules to determine the validty of the number:
  • The number consist of 12 digits.
  • The birthdate of the person is a valid date.
  • The calculated checksum equals to the last digit of the Civil ID.
class localflavor.kw.forms.KWGovernorateSelect(attrs=None)[source]

A Select widget that uses a list of Kuwait governorates as its choices.

Lithuania (lt)

Forms

class localflavor.lt.forms.LTCountySelect(attrs=None)[source]

A select field with the Lithuanian counties as choices

class localflavor.lt.forms.LTIDCodeField(*args, **kwargs)[source]

A form field that validates as Lithuanian ID Code.

Checks:
  • Made of exactly 11 decimal numbers.
  • Checksum is correct.
  • ID contains valid date.
valid_date(value)[source]

Check if date in ID code is valid. We won’t check for dates in future as it would become too restrictive.

class localflavor.lt.forms.LTMunicipalitySelect(attrs=None)[source]

A select field with the Lithuanian municipalities as choices

class localflavor.lt.forms.LTPhoneField(mobile=True, landline=True, emergency=False, landline_local=False, service=False, **kwargs)[source]

Form field that validates as Lithuanian phone number

You can accept any permutation of following phone numbers:

  • Emergency (01, 02, 03, 04, 112)
  • Mobile (370 600 00 000)
  • Landline
  • Service numbers

If you accept landline numbers, you can opt in to accepting local landline numbers too. Local landline numbers are numbers without area code.

This field does not accept multiple numbers (as separated by /).

The field tries its best to convert the number into one you can call to internationally. Currently emergency and most of landline_local numbers are not converted.

New in version 1.1.

class localflavor.lt.forms.LTPostalCodeField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates and normalizes Lithanuan postal codes.

Lithuanian postal codes in following forms accepted:
  • XXXXX
  • LT-XXXXX

Data

localflavor.lt.lt_choices.COUNTY_CHOICES = (('alytus', 'Alytus'), ('kaunas', 'Kaunas'), ('klaipeda', 'Klaipėda'), ('mariampole', 'Mariampolė'), ('panevezys', 'Panevėžys'), ('siauliai', 'Šiauliai'), ('taurage', 'Tauragė'), ('telsiai', 'Telšiai'), ('utena', 'Utena'), ('vilnius', 'Vilnius'))

Alphabetically sorted list of Lithuanian counties.

localflavor.lt.lt_choices.MUNICIPALITY_CHOICES = (('akmene', 'Akmenė district'), ('alytus_c', 'Alytus city'), ('alytus', 'Alytus district'), ('anyksciai', 'Anykščiai district'), ('birstonas', 'Birštonas'), ('birzai', 'Biržai district'), ('druskininkai', 'Druskininkai'), ('elektrenai', 'Elektrėnai'), ('ignalina', 'Ignalina district'), ('jonava', 'Jonava district'), ('joniskis', 'Joniškis district'), ('jurbarkas', 'Jurbarkas district'), ('kaisiadorys', 'Kaišiadorys district'), ('kalvarija', 'Kalvarija'), ('kaunas_c', 'Kaunas city'), ('kaunas', 'Kaunas district'), ('kazluruda', 'Kazlų Rūda'), ('kedainiai', 'Kėdainiai district'), ('kelme', 'Kelmė district'), ('klaipeda_c', 'Klaipėda city'), ('klaipeda', 'Klaipėda district'), ('kretinga', 'Kretinga district'), ('kupiskis', 'Kupiškis district'), ('lazdijai', 'Lazdijai district'), ('marijampole', 'Marijampolė'), ('mazeikiai', 'Mažeikiai district'), ('moletai', 'Molėtai district'), ('neringa', 'Neringa'), ('pagegiai', 'Pagėgiai'), ('pakruojis', 'Pakruojis district'), ('palanga', 'Palanga city'), ('panevezys_c', 'Panevėžys city'), ('panevezys', 'Panevėžys district'), ('pasvalys', 'Pasvalys district'), ('plunge', 'Plungė district'), ('prienai', 'Prienai district'), ('radviliskis', 'Radviliškis district'), ('raseiniai', 'Raseiniai district'), ('rietavas', 'Rietavas'), ('rokiskis', 'Rokiškis district'), ('skuodas', 'Skuodas district'), ('sakiai', 'Šakiai district'), ('salcininkai', 'Šalčininkai district'), ('siauliai_c', 'Šiauliai city'), ('siauliai', 'Šiauliai district'), ('silale', 'Šilalė district'), ('silute', 'Šilutė district'), ('sirvintos', 'Širvintos district'), ('svencionys', 'Švenčionys district'), ('taurage', 'Tauragė district'), ('telsiai', 'Telšiai district'), ('trakai', 'Trakai district'), ('ukmerge', 'Ukmergė district'), ('utena', 'Utena district'), ('varena', 'Varėna district'), ('vilkaviskis', 'Vilkaviškis district'), ('vilnius_c', 'Vilnius city'), ('vilnius', 'Vilnius district'), ('visaginas', 'Visaginas'), ('zarasai', 'Zarasai district'))

Alphabetically sorted lists of Lithuanian municipalities.

Latvia (lv)

New in version 1.1.

Forms

class localflavor.lv.forms.LVMunicipalitySelect(attrs=None)[source]

A select field of Latvian municipalities.

class localflavor.lv.forms.LVPersonalCodeField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates input as a Latvian personal code.

static lv_checksum(value)[source]

Takes a string of 10 digits as input, returns check digit.

class localflavor.lv.forms.LVPostalCodeField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates and normalizes Latvian postal codes.

Latvian postal codes in following forms accepted:
  • XXXX
  • LV-XXXX

Data

localflavor.lv.lv_choices.MUNICIPALITY_CHOICES = (('DGV', 'Daugavpils'), ('JEL', 'Jelgava'), ('JKB', 'Jēkabpils'), ('JUR', 'Jūrmala'), ('LPX', 'Liepāja'), ('REZ', 'Rēzekne'), ('RIX', 'Riga'), ('VMR', 'Valmiera'), ('VEN', 'Ventspils'), ('001', 'Aglona municipality'), ('002', 'Aizkraukle municipality'), ('003', 'Aizpute municipality'), ('004', 'Aknīste municipality'), ('005', 'Aloja municipality'), ('006', 'Alsunga municipality'), ('007', 'Alūksne municipality'), ('008', 'Amata municipality'), ('009', 'Ape municipality'), ('010', 'Auce municipality'), ('011', 'Ādaži municipality'), ('012', 'Babīte municipality'), ('013', 'Baldone municipality'), ('014', 'Baltinava municipality'), ('015', 'Balvi municipality'), ('016', 'Bauska municipality'), ('017', 'Beverīna municipality'), ('018', 'Brocēni municipality'), ('019', 'Burtnieki municipality'), ('020', 'Carnikava municipality'), ('021', 'Cesvaine municipality'), ('022', 'Cēsis municipality'), ('023', 'Cibla municipality'), ('024', 'Dagda municipality'), ('025', 'Daugavpils municipality'), ('026', 'Dobele municipality'), ('027', 'Dundaga municipality'), ('028', 'Durbe municipality'), ('029', 'Engure municipality'), ('030', 'Ērgļi municipality'), ('031', 'Garkalne municipality'), ('032', 'Grobiņa municipality'), ('033', 'Gulbene municipality'), ('034', 'Iecava municipality'), ('035', 'Ikšķile municipality'), ('036', 'Ilūkste municipality'), ('037', 'Inčukalns municipality'), ('038', 'Jaunjelgava municipality'), ('039', 'Jaunpiebalga municipality'), ('040', 'Jaunpils municipality'), ('041', 'Jelgava municipality'), ('042', 'Jēkabpils municipality'), ('043', 'Kandava municipality'), ('044', 'Kārsava municipality'), ('045', 'Kocēni municipality'), ('046', 'Koknese municipality'), ('047', 'Krāslava municipality'), ('048', 'Krimulda municipality'), ('049', 'Krustpils municipality'), ('050', 'Kuldīga municipality'), ('051', 'Ķegums municipality'), ('052', 'Ķekava municipality'), ('053', 'Lielvārde municipality'), ('054', 'Limbaži municipality'), ('055', 'Līgatne municipality'), ('056', 'Līvāni municipality'), ('057', 'Lubāna municipality'), ('058', 'Ludza municipality'), ('059', 'Madona municipality'), ('060', 'Mazsalaca municipality'), ('061', 'Mālpils municipality'), ('062', 'Mārupe municipality'), ('063', 'Mērsrags municipality'), ('064', 'Naukšēni municipality'), ('065', 'Nereta municipality'), ('066', 'Nīca municipality'), ('067', 'Ogre municipality'), ('068', 'Olaine municipality'), ('069', 'Ozolnieki municipality'), ('070', 'Pārgauja municipality'), ('071', 'Pāvilosta municipality'), ('072', 'Pļaviņas municipality'), ('073', 'Preiļi municipality'), ('074', 'Priekule municipality'), ('075', 'Priekuļi municipality'), ('076', 'Rauna municipality'), ('077', 'Rēzekne municipality'), ('078', 'Riebiņi municipality'), ('079', 'Roja municipality'), ('080', 'Ropaži municipality'), ('081', 'Rucava municipality'), ('082', 'Rugāji municipality'), ('083', 'Rundāle municipality'), ('084', 'Rūjiena municipality'), ('085', 'Sala municipality'), ('086', 'Salacgrīva municipality'), ('087', 'Salaspils municipality'), ('088', 'Saldus municipality'), ('089', 'Saulkrasti municipality'), ('090', 'Sēja municipality'), ('091', 'Sigulda municipality'), ('092', 'Skrīveri municipality'), ('093', 'Skrunda municipality'), ('094', 'Smiltene municipality'), ('095', 'Stopiņi municipality'), ('096', 'Strenči municipality'), ('097', 'Talsi municipality'), ('098', 'Tērvete municipality'), ('099', 'Tukums municipality'), ('100', 'Vaiņode municipality'), ('101', 'Valka municipality'), ('102', 'Varakļāni municipality'), ('103', 'Vārkava municipality'), ('104', 'Vecpiebalga municipality'), ('105', 'Vecumnieki municipality'), ('106', 'Ventspils municipality'), ('107', 'Viesīte municipality'), ('108', 'Viļaka municipality'), ('109', 'Viļāni municipality'), ('110', 'Zilupe municipality'))

A list of Latvian municipalities and republican cities. Identifiers based on ISO 3166-2:LV. https://en.wikipedia.org/wiki/ISO_3166-2:LV

Macedonia (mk)

Forms

class localflavor.mk.forms.MKIdentityCardNumberField(*args, **kwargs)[source]

A Macedonian ID card number. Accepts both old and new format.

class localflavor.mk.forms.MKMunicipalitySelect(attrs=None)[source]

A form Select widget that uses a list of Macedonian municipalities as choices. The label is the name of the municipality and the value is a 2 character code for the municipality.

class localflavor.mk.forms.UMCNField(*args, **kwargs)[source]

A form field that validates input as a unique master citizen number.

The format of the unique master citizen number has been kept the same from Yugoslavia. It is still in use in other countries as well, it is not applicable solely in Macedonia. For more information see: https://secure.wikimedia.org/wikipedia/en/wiki/Unique_Master_Citizen_Number

A value will pass validation if it complies to the following rules:

  • Consists of exactly 13 digits
  • The first 7 digits represent a valid past date in the format DDMMYYY
  • The last digit of the UMCN passes a checksum test

Models

class localflavor.mk.models.MKIdentityCardNumberField(*args, **kwargs)[source]

A form field that validates input as a Macedonian identity card number. Both old and new identity card numbers are supported.

class localflavor.mk.models.MKMunicipalityField(*args, **kwargs)[source]

A form field that validates input as a Macedonian identity card number. Both old and new identity card numbers are supported.

class localflavor.mk.models.UMCNField(*args, **kwargs)[source]

A form field that validates input as a unique master citizen number.

The format of the unique master citizen number is not unique to Macedonia. For more information see: https://secure.wikimedia.org/wikipedia/en/wiki/Unique_Master_Citizen_Number

A value will pass validation if it complies to the following rules:

  • Consists of exactly 13 digits
  • The first 7 digits represent a valid past date in the format DDMMYYY
  • The last digit of the UMCN passes a checksum test

Data

localflavor.mk.mk_choices.MK_MUNICIPALITIES = (('AD', 'Aerodrom'), ('AR', 'Aračinovo'), ('BR', 'Berovo'), ('TL', 'Bitola'), ('BG', 'Bogdanci'), ('VJ', 'Bogovinje'), ('BS', 'Bosilovo'), ('BN', 'Brvenica'), ('BU', 'Butel'), ('VA', 'Valandovo'), ('VL', 'Vasilevo'), ('VV', 'Vevčani'), ('VE', 'Veles'), ('NI', 'Vinica'), ('VC', 'Vraneštica'), ('VH', 'Vrapčište'), ('GB', 'Gazi Baba'), ('GV', 'Gevgelija'), ('GT', 'Gostivar'), ('GR', 'Gradsko'), ('DB', 'Debar'), ('DA', 'Debarca'), ('DL', 'Delčevo'), ('DK', 'Demir Kapija'), ('DM', 'Demir Hisar'), ('DE', 'Dolneni'), ('DR', 'Drugovo'), ('GP', 'Gjorče Petrov'), ('ZE', 'Želino'), ('ZA', 'Zajas'), ('ZK', 'Zelenikovo'), ('ZR', 'Zrnovci'), ('IL', 'Ilinden'), ('JG', 'Jegunovce'), ('AV', 'Kavadarci'), ('KB', 'Karbinci'), ('KX', 'Karpoš'), ('VD', 'Kisela Voda'), ('KH', 'Kičevo'), ('KN', 'Konče'), ('OC', 'Koćani'), ('KY', 'Kratovo'), ('KZ', 'Kriva Palanka'), ('KG', 'Krivogaštani'), ('KS', 'Kruševo'), ('UM', 'Kumanovo'), ('LI', 'Lipkovo'), ('LO', 'Lozovo'), ('MR', 'Mavrovo i Rostuša'), ('MK', 'Makedonska Kamenica'), ('MD', 'Makedonski Brod'), ('MG', 'Mogila'), ('NG', 'Negotino'), ('NV', 'Novaci'), ('NS', 'Novo Selo'), ('OS', 'Oslomej'), ('OD', 'Ohrid'), ('PE', 'Petrovec'), ('PH', 'Pehčevo'), ('PN', 'Plasnica'), ('PP', 'Prilep'), ('PT', 'Probištip'), ('RV', 'Radoviš'), ('RN', 'Rankovce'), ('RE', 'Resen'), ('RO', 'Rosoman'), ('AJ', 'Saraj'), ('SL', 'Sveti Nikole'), ('SS', 'Sopište'), ('SD', 'Star Dojran'), ('NA', 'Staro Nagoričane'), ('UG', 'Struga'), ('RU', 'Strumica'), ('SU', 'Studeničani'), ('TR', 'Tearce'), ('ET', 'Tetovo'), ('CE', 'Centar'), ('CZ', 'Centar-Župa'), ('CI', 'Čair'), ('CA', 'Čaška'), ('CH', 'Češinovo-Obleševo'), ('CS', 'Čučer-Sandevo'), ('ST', 'Štip'), ('SO', 'Šuto Orizari'))

Macedonian municipalities per the reorganization from 2004.

Malta (mt)

New in version 1.1.

Forms

Maltese-specific Form helpers.

Mexico (mx)

Forms

Mexican-specific form helpers.

localflavor.mx.forms.CURP_INCONVENIENT_WORDS = ['BACA', 'BAKA', 'BUEI', 'BUEY', 'CACA', 'CACO', 'CAGA', 'CAGO', 'CAKA', 'CAKO', 'COGE', 'COGI', 'COJA', 'COJE', 'COJI', 'COJO', 'COLA', 'CULO', 'FALO', 'FETO', 'GETA', 'GUEI', 'GUEY', 'JETA', 'JOTO', 'KACA', 'KACO', 'KAGA', 'KAGO', 'KAKA', 'KAKO', 'KOGE', 'KOGI', 'KOJA', 'KOJE', 'KOJI', 'KOJO', 'KOLA', 'KULO', 'LILO', 'LOCA', 'LOCO', 'LOKA', 'LOKO', 'MAME', 'MAMO', 'MEAR', 'MEAS', 'MEON', 'MIAR', 'MION', 'MOCO', 'MOKO', 'MULA', 'MULO', 'NACA', 'NACO', 'PEDA', 'PEDO', 'PENE', 'PIPI', 'PITO', 'POPO', 'PUTA', 'PUTO', 'QULO', 'RATA', 'ROBA', 'ROBE', 'ROBO', 'RUIN', 'SENO', 'TETA', 'VACA', 'VAGA', 'VAGO', 'VAKA', 'VUEI', 'VUEY', 'WUEI', 'WUEY']

This is the list of inconvenient words according to the Anexo 2 of the document described in the next link: http://portal.veracruz.gob.mx/pls/portal/url/ITEM/444112558A57C6E0E040A8C02E00695C

class localflavor.mx.forms.MXCLABEField(min_length=18, max_length=18, *args, **kwargs)[source]

This field validates a CLABE (Clave Bancaria Estandarizada).

A CLABE is a 18-digits long number. The first 6 digits denote bank and branch number. The remaining 12 digits denote an account number, plus a verifying digit.

More info: https://en.wikipedia.org/wiki/CLABE

New in version 1.4.

class localflavor.mx.forms.MXCURPField(min_length=18, max_length=18, *args, **kwargs)[source]

A field that validates a Mexican Clave Única de Registro de Población.

The CURP is integrated by a juxtaposition of characters following the next pattern:

Index Format Accepted Characters
1 X Any letter
2 X Any vowel
3-4 XX Any letter
5-10 YYMMDD Any valid date
11 X Either H or M, depending on the person’s gender
12-13 XX Any valid acronym for a state in Mexico
14-16 XXX Any consonant
17 X Any number between 0 and 9 or any letter
18 X Any number between 0 and 9
More info about this:
http://www.condusef.gob.mx/index.php/clave-unica-de-registro-de-poblacion-curp
class localflavor.mx.forms.MXRFCField(min_length=12, max_length=13, *args, **kwargs)[source]

A form field that validates a Mexican Registro Federal de Contribuyentes for either Persona física or Persona moral.

The Persona física RFC string is integrated by a juxtaposition of characters following the next pattern:

Index Format Accepted Characters
1 X Any letter
2 X Any vowel
3-4 XX Any letter
5-10 YYMMDD Any valid date
11-12 XX Any letter or number between 0 and 9
13 X Any digit between 0 and 9 or the letter A

The Persona moral RFC string is integrated by a juxtaposition of characters following the next pattern:

Index Format Accepted Characters
1-3 XXX Any letter including & and Ñ chars
4-9 YYMMDD Any valid date
10-11 XX Any letter or number between 0 and 9
12 X Any number between 0 and 9 or the letter A
More info about this:
http://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico)
class localflavor.mx.forms.MXSocialSecurityNumberField(min_length=11, max_length=11, *args, **kwargs)[source]

A field that validates a Mexican Social Security Number.

The Social Security Number is integrated by a juxtaposition of digits following the next pattern:

Index Required numbers
1-2 The number of the branch office where the Social Security Number was designated.
3-4 The year of inscription to the Social Security.
5-6 The year of birth of the Social Security Number owner.
7-10 The progressive number of procedure for the IMSS. (This digit is provided exclusively by the Institute as it regards the Folio number of such procedure).
11 The verification digit.
class localflavor.mx.forms.MXStateSelect(attrs=None)[source]

A Select widget that uses a list of Mexican states as its choices.

class localflavor.mx.forms.MXZipCodeField(*args, **kwargs)[source]

A form field that accepts a Mexican Zip Code.

More info about this:
http://en.wikipedia.org/wiki/List_of_postal_codes_in_Mexico
localflavor.mx.forms.RFC_INCONVENIENT_WORDS = ['BUEI', 'BUEY', 'CACA', 'CACO', 'CAGA', 'CAGO', 'CAKA', 'CAKO', 'COGE', 'COJA', 'COJE', 'COJI', 'COJO', 'CULO', 'FETO', 'GUEY', 'JOTO', 'KACA', 'KACO', 'KAGA', 'KAGO', 'KOGE', 'KOJO', 'KAKA', 'KULO', 'MAME', 'MAMO', 'MEAR', 'MEAS', 'MEON', 'MION', 'MOCO', 'MULA', 'PEDA', 'PEDO', 'PENE', 'PUTA', 'PUTO', 'QULO', 'RATA', 'RUIN']

This is the list of inconvenient words according to the Anexo IV of the document described in the next link: http://www.sisi.org.mx/jspsi/documentos/2005/seguimiento/06101/0610100162005_065.doc

Models

class localflavor.mx.models.MXCLABEField(*args, **kwargs)[source]

A model field that forms represent as a forms.MXCURPField field and stores the value of a valid Mexican CLABE.

New in version 1.4.

class localflavor.mx.models.MXCURPField(*args, **kwargs)[source]

A model field that forms represent as a forms.MXCURPField field and stores the value of a valid Mexican CURP.

class localflavor.mx.models.MXRFCField(*args, **kwargs)[source]

A model field that forms represent as a forms.MXRFCField field and stores the value of a valid Mexican RFC.

class localflavor.mx.models.MXSocialSecurityNumberField(*args, **kwargs)[source]

A model field that forms represent as a forms.MXSocialSecurityNumberField field and stores the value of a valid Mexican Social Security Number.

class localflavor.mx.models.MXStateField(*args, **kwargs)[source]

A model field that stores the three-letter Mexican state abbreviation in the database.

class localflavor.mx.models.MXZipCodeField(*args, **kwargs)[source]

A model field that forms represent as a forms.MXZipCodeField field and stores the five-digit Mexican zip code.

Data

localflavor.mx.mx_states.STATE_CHOICES = (('AGU', 'Aguascalientes'), ('BCN', 'Baja California'), ('BCS', 'Baja California Sur'), ('CAM', 'Campeche'), ('CHH', 'Chihuahua'), ('CHP', 'Chiapas'), ('COA', 'Coahuila'), ('COL', 'Colima'), ('DIF', 'Distrito Federal'), ('DUR', 'Durango'), ('GRO', 'Guerrero'), ('GUA', 'Guanajuato'), ('HID', 'Hidalgo'), ('JAL', 'Jalisco'), ('MEX', 'Estado de México'), ('MIC', 'Michoacán'), ('MOR', 'Morelos'), ('NAY', 'Nayarit'), ('NLE', 'Nuevo León'), ('OAX', 'Oaxaca'), ('PUE', 'Puebla'), ('QUE', 'Querétaro'), ('ROO', 'Quintana Roo'), ('SIN', 'Sinaloa'), ('SLP', 'San Luis Potosí'), ('SON', 'Sonora'), ('TAB', 'Tabasco'), ('TAM', 'Tamaulipas'), ('TLA', 'Tlaxcala'), ('VER', 'Veracruz'), ('YUC', 'Yucatán'), ('ZAC', 'Zacatecas'))

All 31 states, plus the Distrito Federal.

The Netherlands (nl)

Forms

NL-specific Form helpers

class localflavor.nl.forms.NLPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A Dutch telephone number field.

class localflavor.nl.forms.NLProvinceSelect(attrs=None)[source]

A Select widget that uses a list of provinces of the Netherlands as it’s choices.

class localflavor.nl.forms.NLSoFiNumberField(*args, **kwargs)[source]

A Dutch social security number (SoFi/BSN) field.

http://nl.wikipedia.org/wiki/Sofinummer

class localflavor.nl.forms.NLZipCodeField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A Dutch zip code field.

Models

class localflavor.nl.models.NLBankAccountNumberField(*args, **kwargs)[source]

A Dutch bank account model field.

This model field uses validators.NLBankAccountNumberFieldValidator for validation.

New in version 1.1.

deconstruct()[source]
class localflavor.nl.models.NLPhoneNumberField(*args, **kwargs)[source]

Dutch phone number model field

This model field uses validators.NLPhoneNumberFieldValidator for validation.

New in version 1.3.

deconstruct()[source]
description = 'Dutch phone number'
formfield(**kwargs)[source]
validator = [<localflavor.nl.validators.NLPhoneNumberFieldValidator object at 0x7f57fde12f28>]
class localflavor.nl.models.NLProvinceField(*args, **kwargs)[source]

A Dutch Province field.

New in version 1.3.

deconstruct()[source]
description = 'Dutch province'
class localflavor.nl.models.NLSoFiNumberField(*args, **kwargs)[source]

A Dutch social security number (SoFi)

This model field uses validators.NLSoFiNumberFieldValidator for validation.

New in version 1.3.

deconstruct()[source]
description = 'Dutch social security number (SoFi)'
formfield(**kwargs)[source]
validators = [<localflavor.nl.validators.NLSoFiNumberFieldValidator object at 0x7f57fde12a90>]
class localflavor.nl.models.NLZipCodeField(*args, **kwargs)[source]

A Dutch zip code model field.

This model field uses validators.NLZipCodeFieldValidator for validation.

New in version 1.3.

deconstruct()[source]
description = 'Dutch zipcode'
formfield(**kwargs)[source]
to_python(value)[source]
validators = [<localflavor.nl.validators.NLZipCodeFieldValidator object at 0x7f57fde12e10>]

Data

localflavor.nl.nl_provinces.PROVINCE_CHOICES = (('DR', 'Drenthe'), ('FL', 'Flevoland'), ('FR', 'Fryslân'), ('GL', 'Gelderland'), ('GR', 'Groningen'), ('LB', 'Limburg'), ('NB', 'Noord-Brabant'), ('NH', 'Noord-Holland'), ('OV', 'Overijssel'), ('UT', 'Utrecht'), ('ZE', 'Zeeland'), ('ZH', 'Zuid-Holland'))

An alphabetical list of provinces

Norway (no)

Forms

Norwegian-specific Form helpers

class localflavor.no.forms.NOMunicipalitySelect(attrs=None)[source]

A Select widget that uses a list of Norwegian municipalities (fylker) as its choices.

class localflavor.no.forms.NOPhoneNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

Field with phonenumber validation. Requires a phone number with 8 digits and optional country code

class localflavor.no.forms.NOSocialSecurityNumber(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

Algorithm is documented at http://no.wikipedia.org/wiki/Personnummer

class localflavor.no.forms.NOZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a Norwegian zip code. Valid codes have four digits.

Data

localflavor.no.no_municipalities.MUNICIPALITY_CHOICES = (('akershus', 'Akershus'), ('austagder', 'Aust-Agder'), ('buskerud', 'Buskerud'), ('finnmark', 'Finnmark'), ('hedmark', 'Hedmark'), ('hordaland', 'Hordaland'), ('janmayen', 'Jan Mayen'), ('moreogromsdal', 'Møre og Romsdal'), ('nordtrondelag', 'Nord-Trøndelag'), ('nordland', 'Nordland'), ('oppland', 'Oppland'), ('oslo', 'Oslo'), ('rogaland', 'Rogaland'), ('sognogfjordane', 'Sogn og Fjordane'), ('svalbard', 'Svalbard'), ('sortrondelag', 'Sør-Trøndelag'), ('telemark', 'Telemark'), ('troms', 'Troms'), ('vestagder', 'Vest-Agder'), ('vestfold', 'Vestfold'), ('ostfold', 'Østfold'))

An alphabetical list of Norwegian municipalities (fylker) for use as choices in a formfield.

New Zealand (nz)

New in version 1.1.

Forms

New Zealand specific form helpers

class localflavor.nz.forms.NZBankAccountNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input as New Zealand bank account number.

Formats:

XX-XXXX-XXXXXXX-XX

XX-XXXX-XXXXXXX-XXX

Where:

  • the first two digits is the bank ID
  • the next four digits are the branch number where the account was opened
  • the next 7 digits are the account numbers
  • the last two or three digits define type of the account.
class localflavor.nz.forms.NZNorthIslandCouncilSelect(attrs=None)[source]

A select widget with list of New Zealand North Island city and district councils as its choices.

class localflavor.nz.forms.NZPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input as New Zealand phone number.

class localflavor.nz.forms.NZPostCodeField(*args, **kwargs)[source]

A form field that validates its input as New Zealand postal code.

class localflavor.nz.forms.NZProvinceSelect(attrs=None)[source]

A select widget with list of New Zealand provinces as its choices.

class localflavor.nz.forms.NZRegionSelect(attrs=None)[source]

A select widget with list of New Zealand regions as its choices.

class localflavor.nz.forms.NZSouthIslandCouncilSelect(attrs=None)[source]

A select widget with list of New Zealand South Island city and district councils as its choices.

Data

localflavor.nz.nz_regions.REGION_CHOICES = (('NZ-NTL', 'Northland'), ('NZ-AUK', 'Auckland'), ('NZ-WKO', 'Waikato'), ('NZ-BOP', 'Bay of Plenty'), ('NZ-GIS', 'Gisborne'), ('NZ-HKB', "Hawke's Bay"), ('NZ-TKI', 'Taranaki'), ('NZ-MWT', 'Manawatu-Wanganui'), ('NZ-WGN', 'Wellington'), ('NZ-TAS', 'Tasman'), ('NZ-NSN', 'Nelson'), ('NZ-MBH', 'Marlborough'), ('NZ-WTC', 'West Coast'), ('NZ-CAN', 'Canterbury'), ('NZ-OTA', 'Otago'), ('NZ-STL', 'Southland'))

A list of regions

localflavor.nz.nz_provinces.PROVINCE_CHOICES = (('Auckland', 'Auckland'), ('Taranaki', 'Taranaki'), ("Hawke's Bay", "Hawke's Bay"), ('Wellington', 'Wellington'), ('Marlborough', 'Marlborough'), ('Nelson', 'Nelson'), ('Canterbury', 'Canterbury'), ('South Canterbury', 'South Canterbury'), ('Westland', 'Westland'), ('Otago', 'Otago'), ('Southland', 'Southland'), ('Chatham Islands', 'Chatham Islands'))

A list of provinces (abolished in 1876, use regions instead)

localflavor.nz.nz_councils.NORTH_ISLAND_COUNCIL_CHOICES = (('Far North', 'Far North District'), ('Whangarei', 'Whangarei District'), ('Kaipara', 'Kaipara District'), ('Auckland', 'Auckland'), ('Thames-Coromandel', 'Thames-Coromandel District'), ('Hauraki', 'Hauraki District'), ('Waikato', 'Waikato District'), ('Matamata-Piako', 'Matamata-Piako District'), ('Hamilton', 'Hamilton'), ('Waipa', 'Waipa District'), ('South Waikato', 'South Waikato District'), ('Otorohanga', 'Otorohanga District'), ('Waitomo', 'Waitomo District'), ('Taupo', 'Taupo District'), ('Western Bay of Plenty', 'Western Bay of Plenty District'), ('Tauranga', 'Tauranga'), ('Opotiki', 'Opotiki District'), ('Whakatane', 'Whakatane District'), ('Rotorua\t', 'Rotorua District'), ('Kawerau', 'Kawerau District'), ('Gisborne', 'Gisborne District'), ('Wairoa', 'Wairoa District'), ('Hastings', 'Hastings District'), ('Napier', 'Napier'), ("Central Hawke's Bay", "Central Hawke's Bay District"), ('New Plymouth', 'New Plymouth District'), ('Stratford', 'Stratford District'), ('South Taranaki', 'South Taranaki District'), ('Ruapehu', 'Ruapehu District'), ('Rangitikei', 'Rangitikei District'), ('Wanganui', 'Wanganui District'), ('Manawatu', 'Manawatu District'), ('Palmerston North', 'Palmerston North'), ('Tararua', 'Tararua District'), ('Horowhenua', 'Horowhenua District'), ('Masterton', 'Masterton District'), ('Kapiti Coast', 'Kapiti Coast District'), ('Carterton', 'Carterton District'), ('South Wairarapa', 'South Wairarapa District'), ('Upper Hutt', 'Upper Hutt'), ('Porirua', 'Porirua'), ('Hutt', 'Hutt'), ('Wellington', 'Wellington'))

A list of North Island city and district councils

localflavor.nz.nz_councils.SOUTH_ISLAND_COUNCIL_CHOICES = (('Tasman', 'Tasman District'), ('Nelson', 'Nelson'), ('Marlborough', 'Marlborough District'), ('Buller', 'Buller District'), ('Grey', 'Grey District'), ('Westland', 'Westland District'), ('Kaikoura', 'Kaikoura District'), ('Hurunui', 'Hurunui District'), ('Selwyn', 'Selwyn District'), ('Waimakariri', 'Waimakariri District'), ('Christchurch', 'Christchurch'), ('Ashburton', 'Ashburton District'), ('Mackenzie', 'Mackenzie District'), ('Timaru', 'Timaru District'), ('Waimate', 'Waimate District'), ('Waitaki', 'Waitaki District'), ('Queenstown-Lakes', 'Queenstown-Lakes District'), ('Central Otago', 'Central Otago District'), ('Dunedin', 'Dunedin'), ('Clutha', 'Clutha District'), ('Southland', 'Southland District'), ('Gore', 'Gore District'), ('Invercargill', 'Invercargill'))

A list of South Island city and district councils

Peru (pe)

Forms

PE-specific Form helpers.

class localflavor.pe.forms.PEDNIField(max_length=8, min_length=8, *args, **kwargs)[source]

A field that validates Documento Nacional de Identidad (DNI) numbers.

clean(value)[source]

Value must be a string in the XXXXXXXX formats.

class localflavor.pe.forms.PERUCField(max_length=11, min_length=11, *args, **kwargs)[source]

This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of the form XXXXXXXXXXX.

clean(value)[source]

Value must be an 11-digit number.

class localflavor.pe.forms.PERegionSelect(attrs=None)[source]

A Select widget that uses a list of Peruvian Regions as its choices.

Data

localflavor.pe.pe_region.REGION_CHOICES = (('AMA', 'Amazonas'), ('ANC', 'Ancash'), ('APU', 'Apurímac'), ('ARE', 'Arequipa'), ('AYA', 'Ayacucho'), ('CAJ', 'Cajamarca'), ('CAL', 'Callao'), ('CUS', 'Cusco'), ('HUV', 'Huancavelica'), ('HUC', 'Huánuco'), ('ICA', 'Ica'), ('JUN', 'Junín'), ('LAL', 'La Libertad'), ('LAM', 'Lambayeque'), ('LIM', 'Lima'), ('LOR', 'Loreto'), ('MDD', 'Madre de Dios'), ('MOQ', 'Moquegua'), ('PAS', 'Pasco'), ('PIU', 'Piura'), ('PUN', 'Puno'), ('SAM', 'San Martín'), ('TAC', 'Tacna'), ('TUM', 'Tumbes'), ('UCA', 'Ucayali'))

A list of Peru regions as choices in a formfield.

Pakistan (pk)

Forms

Pakistani-specific Form helpers

class localflavor.pk.forms.PKPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as an Pakistani phone number.

Valid numbers have nine to eleven digits.

clean(value)[source]

Validate a phone number. Strips parentheses, whitespace and hyphens.

class localflavor.pk.forms.PKPostCodeField(*args, **kwargs)[source]

Pakistani post code field.

Assumed to be 5 digits.

class localflavor.pk.forms.PKStateSelect(attrs=None)[source]

A Select widget that uses a list of Pakistani states/territories as its choices.

Models

class localflavor.pk.models.PKPhoneNumberField(*args, **kwargs)[source]

A model field that checks that the value is a valid Pakistani phone number (nine to eleven digits).

deconstruct()[source]
description = 'Pakistani Phone number'
formfield(**kwargs)[source]
class localflavor.pk.models.PKPostCodeField(*args, **kwargs)[source]

A model field that forms represent as a PKPostCodeField field and stores the five-digit Pakistani postcode in the database.

deconstruct()[source]
description = 'Pakistani Postcode'
formfield(**kwargs)[source]
class localflavor.pk.models.PKStateField(*args, **kwargs)[source]

A model field that is represented with STATE_CHOICES` choices and stores the five-letter Pakistani state abbreviation in the database.

deconstruct()[source]
description = 'Pakistani State'

Data

localflavor.pk.pk_states.STATE_CHOICES = (('PK-JK', 'Azad Jammu & Kashmir'), ('PK-BA', 'Balochistan'), ('PK-TA', 'Federally Administered Tribal Areas'), ('PK-GB', 'Gilgit-Baltistan'), ('PK-IS', 'Islamabad'), ('PK-KP', 'Khyber Pakhtunkhwa'), ('PK-PB', 'Punjab'), ('PK-SD', 'Sindh'))

An alphabetical list of states for use as choices in a formfield.

Poland (pl)

Forms

Polish-specific form helpers

class localflavor.pl.forms.PLCountySelect(attrs=None)[source]

A select widget with list of Polish administrative units as choices.

class localflavor.pl.forms.PLNIPField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates as Polish Tax Number (NIP). Valid forms are: XXX-YYY-YY-YY, XXX-YY-YY-YYY or XXXYYYYYYY.

Checksum algorithm based on documentation at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html

has_valid_checksum(number)[source]

Calculates a checksum with the provided algorithm.

class localflavor.pl.forms.PLNationalIDCardNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates as Polish National ID Card Number.

Checks the following rules:
  • the length consist of 3 letter and 6 digits
  • has a valid checksum

The algorithm is documented at http://en.wikipedia.org/wiki/Polish_identity_card.

has_valid_checksum(number)[source]

Calculates a checksum with the provided algorithm.

class localflavor.pl.forms.PLPESELField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates as Polish Identification Number (PESEL).

Checks the following rules:
  • the length consist of 11 digits
  • has a valid checksum
  • contains a valid birth date

The algorithm is documented at http://en.wikipedia.org/wiki/PESEL.

Changed in version 1.4.

has_valid_birth_date(number)[source]

Checks whether the birth date encoded in PESEL is valid.

has_valid_checksum(number)[source]

Calculates a checksum with the provided algorithm.

class localflavor.pl.forms.PLPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates as Polish postal code. Valid code is XX-XXX where X is digit.

class localflavor.pl.forms.PLProvinceSelect(attrs=None)[source]

A select widget with list of Polish administrative provinces as choices.

class localflavor.pl.forms.PLREGONField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input is a REGON number.

Valid regon number consists of 9 or 14 digits. See http://www.stat.gov.pl/bip/regon_ENG_HTML.htm for more information.

has_valid_checksum(number)[source]

Calculates a checksum with the provided algorithm.

Data

localflavor.pl.pl_administrativeunits.ADMINISTRATIVE_UNIT_CHOICES = (('wroclaw', 'Wrocław'), ('jeleniagora', 'Jelenia Góra'), ('legnica', 'Legnica'), ('boleslawiecki', 'bolesławiecki'), ('dzierzoniowski', 'dzierżoniowski'), ('glogowski', 'głogowski'), ('gorowski', 'górowski'), ('jaworski', 'jaworski'), ('jeleniogorski', 'jeleniogórski'), ('kamiennogorski', 'kamiennogórski'), ('klodzki', 'kłodzki'), ('legnicki', 'legnicki'), ('lubanski', 'lubański'), ('lubinski', 'lubiński'), ('lwowecki', 'lwówecki'), ('milicki', 'milicki'), ('olesnicki', 'oleśnicki'), ('olawski', 'oławski'), ('polkowicki', 'polkowicki'), ('strzelinski', 'strzeliński'), ('sredzki', 'średzki'), ('swidnicki', 'świdnicki'), ('trzebnicki', 'trzebnicki'), ('walbrzyski', 'wałbrzyski'), ('wolowski', 'wołowski'), ('wroclawski', 'wrocławski'), ('zabkowicki', 'ząbkowicki'), ('zgorzelecki', 'zgorzelecki'), ('zlotoryjski', 'złotoryjski'), ('bydgoszcz', 'Bydgoszcz'), ('torun', 'Toruń'), ('wloclawek', 'Włocławek'), ('grudziadz', 'Grudziądz'), ('aleksandrowski', 'aleksandrowski'), ('brodnicki', 'brodnicki'), ('bydgoski', 'bydgoski'), ('chelminski', 'chełmiński'), ('golubsko-dobrzynski', 'golubsko-dobrzyński'), ('grudziadzki', 'grudziądzki'), ('inowroclawski', 'inowrocławski'), ('lipnowski', 'lipnowski'), ('mogilenski', 'mogileński'), ('nakielski', 'nakielski'), ('radziejowski', 'radziejowski'), ('rypinski', 'rypiński'), ('sepolenski', 'sępoleński'), ('swiecki', 'świecki'), ('torunski', 'toruński'), ('tucholski', 'tucholski'), ('wabrzeski', 'wąbrzeski'), ('wloclawski', 'włocławski'), ('zninski', 'żniński'), ('lublin', 'Lublin'), ('biala-podlaska', 'Biała Podlaska'), ('chelm', 'Chełm'), ('zamosc', 'Zamość'), ('bialski', 'bialski'), ('bilgorajski', 'biłgorajski'), ('chelmski', 'chełmski'), ('hrubieszowski', 'hrubieszowski'), ('janowski', 'janowski'), ('krasnostawski', 'krasnostawski'), ('krasnicki', 'kraśnicki'), ('lubartowski', 'lubartowski'), ('lubelski', 'lubelski'), ('leczynski', 'łęczyński'), ('lukowski', 'łukowski'), ('opolski', 'opolski'), ('parczewski', 'parczewski'), ('pulawski', 'puławski'), ('radzynski', 'radzyński'), ('rycki', 'rycki'), ('swidnicki', 'świdnicki'), ('tomaszowski', 'tomaszowski'), ('wlodawski', 'włodawski'), ('zamojski', 'zamojski'), ('gorzow-wielkopolski', 'Gorzów Wielkopolski'), ('zielona-gora', 'Zielona Góra'), ('gorzowski', 'gorzowski'), ('krosnienski', 'krośnieński'), ('miedzyrzecki', 'międzyrzecki'), ('nowosolski', 'nowosolski'), ('slubicki', 'słubicki'), ('strzelecko-drezdenecki', 'strzelecko-drezdenecki'), ('sulecinski', 'suleńciński'), ('swiebodzinski', 'świebodziński'), ('wschowski', 'wschowski'), ('zielonogorski', 'zielonogórski'), ('zaganski', 'żagański'), ('zarski', 'żarski'), ('lodz', 'Łódź'), ('piotrkow-trybunalski', 'Piotrków Trybunalski'), ('skierniewice', 'Skierniewice'), ('belchatowski', 'bełchatowski'), ('brzezinski', 'brzeziński'), ('kutnowski', 'kutnowski'), ('laski', 'łaski'), ('leczycki', 'łęczycki'), ('lowicki', 'łowicki'), ('lodzki wschodni', 'łódzki wschodni'), ('opoczynski', 'opoczyński'), ('pabianicki', 'pabianicki'), ('pajeczanski', 'pajęczański'), ('piotrkowski', 'piotrkowski'), ('poddebicki', 'poddębicki'), ('radomszczanski', 'radomszczański'), ('rawski', 'rawski'), ('sieradzki', 'sieradzki'), ('skierniewicki', 'skierniewicki'), ('tomaszowski', 'tomaszowski'), ('wielunski', 'wieluński'), ('wieruszowski', 'wieruszowski'), ('zdunskowolski', 'zduńskowolski'), ('zgierski', 'zgierski'), ('krakow', 'Kraków'), ('tarnow', 'Tarnów'), ('nowy-sacz', 'Nowy Sącz'), ('bochenski', 'bocheński'), ('brzeski', 'brzeski'), ('chrzanowski', 'chrzanowski'), ('dabrowski', 'dąbrowski'), ('gorlicki', 'gorlicki'), ('krakowski', 'krakowski'), ('limanowski', 'limanowski'), ('miechowski', 'miechowski'), ('myslenicki', 'myślenicki'), ('nowosadecki', 'nowosądecki'), ('nowotarski', 'nowotarski'), ('olkuski', 'olkuski'), ('oswiecimski', 'oświęcimski'), ('proszowicki', 'proszowicki'), ('suski', 'suski'), ('tarnowski', 'tarnowski'), ('tatrzanski', 'tatrzański'), ('wadowicki', 'wadowicki'), ('wielicki', 'wielicki'), ('warszawa', 'Warszawa'), ('ostroleka', 'Ostrołęka'), ('plock', 'Płock'), ('radom', 'Radom'), ('siedlce', 'Siedlce'), ('bialobrzeski', 'białobrzeski'), ('ciechanowski', 'ciechanowski'), ('garwolinski', 'garwoliński'), ('gostyninski', 'gostyniński'), ('grodziski', 'grodziski'), ('grojecki', 'grójecki'), ('kozienicki', 'kozenicki'), ('legionowski', 'legionowski'), ('lipski', 'lipski'), ('losicki', 'łosicki'), ('makowski', 'makowski'), ('minski', 'miński'), ('mlawski', 'mławski'), ('nowodworski', 'nowodworski'), ('ostrolecki', 'ostrołęcki'), ('ostrowski', 'ostrowski'), ('otwocki', 'otwocki'), ('piaseczynski', 'piaseczyński'), ('plocki', 'płocki'), ('plonski', 'płoński'), ('pruszkowski', 'pruszkowski'), ('przasnyski', 'przasnyski'), ('przysuski', 'przysuski'), ('pultuski', 'pułtuski'), ('radomski', 'radomski'), ('siedlecki', 'siedlecki'), ('sierpecki', 'sierpecki'), ('sochaczewski', 'sochaczewski'), ('sokolowski', 'sokołowski'), ('szydlowiecki', 'szydłowiecki'), ('warszawski-zachodni', 'warszawski zachodni'), ('wegrowski', 'węgrowski'), ('wolominski', 'wołomiński'), ('wyszkowski', 'wyszkowski'), ('zwolenski', 'zwoleński'), ('zurominski', 'żuromiński'), ('zyrardowski', 'żyrardowski'), ('opole', 'Opole'), ('brzeski', 'brzeski'), ('glubczycki', 'głubczyski'), ('kedzierzynsko-kozielski', 'kędzierzyńsko-kozielski'), ('kluczborski', 'kluczborski'), ('krapkowicki', 'krapkowicki'), ('namyslowski', 'namysłowski'), ('nyski', 'nyski'), ('oleski', 'oleski'), ('opolski', 'opolski'), ('prudnicki', 'prudnicki'), ('strzelecki', 'strzelecki'), ('rzeszow', 'Rzeszów'), ('krosno', 'Krosno'), ('przemysl', 'Przemyśl'), ('tarnobrzeg', 'Tarnobrzeg'), ('bieszczadzki', 'bieszczadzki'), ('brzozowski', 'brzozowski'), ('debicki', 'dębicki'), ('jaroslawski', 'jarosławski'), ('jasielski', 'jasielski'), ('kolbuszowski', 'kolbuszowski'), ('krosnienski', 'krośnieński'), ('leski', 'leski'), ('lezajski', 'leżajski'), ('lubaczowski', 'lubaczowski'), ('lancucki', 'łańcucki'), ('mielecki', 'mielecki'), ('nizanski', 'niżański'), ('przemyski', 'przemyski'), ('przeworski', 'przeworski'), ('ropczycko-sedziszowski', 'ropczycko-sędziszowski'), ('rzeszowski', 'rzeszowski'), ('sanocki', 'sanocki'), ('stalowowolski', 'stalowowolski'), ('strzyzowski', 'strzyżowski'), ('tarnobrzeski', 'tarnobrzeski'), ('bialystok', 'Białystok'), ('lomza', 'Łomża'), ('suwalki', 'Suwałki'), ('augustowski', 'augustowski'), ('bialostocki', 'białostocki'), ('bielski', 'bielski'), ('grajewski', 'grajewski'), ('hajnowski', 'hajnowski'), ('kolnenski', 'kolneński'), ('łomzynski', 'łomżyński'), ('moniecki', 'moniecki'), ('sejnenski', 'sejneński'), ('siemiatycki', 'siematycki'), ('sokolski', 'sokólski'), ('suwalski', 'suwalski'), ('wysokomazowiecki', 'wysokomazowiecki'), ('zambrowski', 'zambrowski'), ('gdansk', 'Gdańsk'), ('gdynia', 'Gdynia'), ('slupsk', 'Słupsk'), ('sopot', 'Sopot'), ('bytowski', 'bytowski'), ('chojnicki', 'chojnicki'), ('czluchowski', 'człuchowski'), ('kartuski', 'kartuski'), ('koscierski', 'kościerski'), ('kwidzynski', 'kwidzyński'), ('leborski', 'lęborski'), ('malborski', 'malborski'), ('nowodworski', 'nowodworski'), ('gdanski', 'gdański'), ('pucki', 'pucki'), ('slupski', 'słupski'), ('starogardzki', 'starogardzki'), ('sztumski', 'sztumski'), ('tczewski', 'tczewski'), ('wejherowski', 'wejcherowski'), ('katowice', 'Katowice'), ('bielsko-biala', 'Bielsko-Biała'), ('bytom', 'Bytom'), ('chorzow', 'Chorzów'), ('czestochowa', 'Częstochowa'), ('dabrowa-gornicza', 'Dąbrowa Górnicza'), ('gliwice', 'Gliwice'), ('jastrzebie-zdroj', 'Jastrzębie Zdrój'), ('jaworzno', 'Jaworzno'), ('myslowice', 'Mysłowice'), ('piekary-slaskie', 'Piekary Śląskie'), ('ruda-slaska', 'Ruda Śląska'), ('rybnik', 'Rybnik'), ('siemianowice-slaskie', 'Siemianowice Śląskie'), ('sosnowiec', 'Sosnowiec'), ('swietochlowice', 'Świętochłowice'), ('tychy', 'Tychy'), ('zabrze', 'Zabrze'), ('zory', 'Żory'), ('bedzinski', 'będziński'), ('bielski', 'bielski'), ('bierunsko-ledzinski', 'bieruńsko-lędziński'), ('cieszynski', 'cieszyński'), ('czestochowski', 'częstochowski'), ('gliwicki', 'gliwicki'), ('klobucki', 'kłobucki'), ('lubliniecki', 'lubliniecki'), ('mikolowski', 'mikołowski'), ('myszkowski', 'myszkowski'), ('pszczynski', 'pszczyński'), ('raciborski', 'raciborski'), ('rybnicki', 'rybnicki'), ('tarnogorski', 'tarnogórski'), ('wodzislawski', 'wodzisławski'), ('zawiercianski', 'zawierciański'), ('zywiecki', 'żywiecki'), ('kielce', 'Kielce'), ('buski', 'buski'), ('jedrzejowski', 'jędrzejowski'), ('kazimierski', 'kazimierski'), ('kielecki', 'kielecki'), ('konecki', 'konecki'), ('opatowski', 'opatowski'), ('ostrowiecki', 'ostrowiecki'), ('pinczowski', 'pińczowski'), ('sandomierski', 'sandomierski'), ('skarzyski', 'skarżyski'), ('starachowicki', 'starachowicki'), ('staszowski', 'staszowski'), ('wloszczowski', 'włoszczowski'), ('olsztyn', 'Olsztyn'), ('elblag', 'Elbląg'), ('bartoszycki', 'bartoszycki'), ('braniewski', 'braniewski'), ('dzialdowski', 'działdowski'), ('elblaski', 'elbląski'), ('elcki', 'ełcki'), ('gizycki', 'giżycki'), ('goldapski', 'gołdapski'), ('ilawski', 'iławski'), ('ketrzynski', 'kętrzyński'), ('lidzbarski', 'lidzbarski'), ('mragowski', 'mrągowski'), ('nidzicki', 'nidzicki'), ('nowomiejski', 'nowomiejski'), ('olecki', 'olecki'), ('olsztynski', 'olsztyński'), ('ostrodzki', 'ostródzki'), ('piski', 'piski'), ('szczycienski', 'szczycieński'), ('wegorzewski', 'węgorzewski'), ('poznan', 'Poznań'), ('kalisz', 'Kalisz'), ('konin', 'Konin'), ('leszno', 'Leszno'), ('chodzieski', 'chodziejski'), ('czarnkowsko-trzcianecki', 'czarnkowsko-trzcianecki'), ('gnieznienski', 'gnieźnieński'), ('gostynski', 'gostyński'), ('grodziski', 'grodziski'), ('jarocinski', 'jarociński'), ('kaliski', 'kaliski'), ('kepinski', 'kępiński'), ('kolski', 'kolski'), ('koninski', 'koniński'), ('koscianski', 'kościański'), ('krotoszynski', 'krotoszyński'), ('leszczynski', 'leszczyński'), ('miedzychodzki', 'międzychodzki'), ('nowotomyski', 'nowotomyski'), ('obornicki', 'obornicki'), ('ostrowski', 'ostrowski'), ('ostrzeszowski', 'ostrzeszowski'), ('pilski', 'pilski'), ('pleszewski', 'pleszewski'), ('poznanski', 'poznański'), ('rawicki', 'rawicki'), ('slupecki', 'słupecki'), ('szamotulski', 'szamotulski'), ('sredzki', 'średzki'), ('sremski', 'śremski'), ('turecki', 'turecki'), ('wagrowiecki', 'wągrowiecki'), ('wolsztynski', 'wolsztyński'), ('wrzesinski', 'wrzesiński'), ('zlotowski', 'złotowski'), ('bialogardzki', 'białogardzki'), ('choszczenski', 'choszczeński'), ('drawski', 'drawski'), ('goleniowski', 'goleniowski'), ('gryficki', 'gryficki'), ('gryfinski', 'gryfiński'), ('kamienski', 'kamieński'), ('kolobrzeski', 'kołobrzeski'), ('koszalinski', 'koszaliński'), ('lobeski', 'łobeski'), ('mysliborski', 'myśliborski'), ('policki', 'policki'), ('pyrzycki', 'pyrzycki'), ('slawienski', 'sławieński'), ('stargardzki', 'stargardzki'), ('szczecinecki', 'szczecinecki'), ('swidwinski', 'świdwiński'), ('walecki', 'wałecki'))

Polish administrative units as in http://pl.wikipedia.org/wiki/Podzia%C5%82_administracyjny_Polski

localflavor.pl.pl_voivodeships.VOIVODESHIP_CHOICES = (('lower_silesia', 'Lower Silesian'), ('kuyavia-pomerania', 'Kuyavian-Pomeranian'), ('lublin', 'Lublin'), ('lubusz', 'Lubusz'), ('lodz', 'Lodz'), ('lesser_poland', 'Lesser Poland'), ('masovia', 'Masovian'), ('opole', 'Opole'), ('subcarpatia', 'Subcarpathian'), ('podlasie', 'Podlasie'), ('pomerania', 'Pomeranian'), ('silesia', 'Silesian'), ('swietokrzyskie', 'Swietokrzyskie'), ('warmia-masuria', 'Warmian-Masurian'), ('greater_poland', 'Greater Poland'), ('west_pomerania', 'West Pomeranian'))

Polish voivodeship as in http://en.wikipedia.org/wiki/Poland#Administrative_division

Portugal (pt)

Forms

django_localflavot_pt.forms

Contains PT-specific Django form helpers.

class localflavor.pt.forms.PTCitizenCardNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A field which validates Portuguese Citizen Card numbers (locally CC - ‘Cartão do Cidadão’).

  • Citizen Card numbers have the format XXXXXXXXXYYX or XXXXXXXX-XYYX (where X is a digit and Y is an alphanumeric character).
  • Citizen Card numbers validate as per http://bit.ly/RP0BzW.
  • The input string may or may not have an hyphen separating the identity number from the document’s check-digits.
  • This field does NOT validate old ID card numbers (locally BI - ‘Bilhete de Identidade’).
class localflavor.pt.forms.PTPhoneNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A field which validates Portuguese phone numbers.

  • Phone numbers have at least 3 and at most 9 digits and may optionally be prefixed with ‘00351’ or ‘+351’.
  • The input string is allowed to contain spaces (though they will be stripped).
class localflavor.pt.forms.PTRegionSelect(attrs=None)[source]

A select widget which uses a list of Portuguese regions as its choices.

  • Regions correspond to the Portuguese ‘distritos’ and ‘regiões autónomas’ as per ISO3166:2-PT.
class localflavor.pt.forms.PTSocialSecurityNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A field which validates Portuguese Social Security numbers (locally NISS - ‘Número de Identificação na Segurança Social’).

  • Social Security numbers must be in the format XYYYYYYYYYY (where X is either 1 or 2 and Y is any other digit).
class localflavor.pt.forms.PTZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A field which validates Portuguese zip codes.

NOTE - Zip codes have the format XYYY-YYY (where X is a digit between 1 and 9 and Y is any other digit).

Data

localflavor.pt.pt_regions.REGION_CHOICES = (('01', 'Aveiro'), ('02', 'Beja'), ('03', 'Braga'), ('04', 'Bragança'), ('05', 'Castelo Branco'), ('06', 'Coimbra'), ('07', 'Évora'), ('08', 'Faro'), ('09', 'Guarda'), ('10', 'Leiria'), ('11', 'Lisboa'), ('12', 'Portalegre'), ('13', 'Porto'), ('14', 'Santarém'), ('15', 'Setúbal'), ('16', 'Viana do Castelo'), ('17', 'Vila Real'), ('18', 'Viseu'), ('20', 'Região Autónoma da Madeira'), ('30', 'Região Autónoma dos Açores'))

A tuple representing Portuguese regions (as per ISO3166:2-PT).

Paraguay (py)

Forms

PY-specific Form helpers.

class localflavor.py_.forms.PyDepartmentSelect(attrs=None)[source]

A Select widget with a list of Paraguayan departments as choices.

class localflavor.py_.forms.PyNumberedDepartmentSelect(attrs=None)[source]

A Select widget with a roman numbered list of Paraguayan departments as choices.

Data

localflavor.py_.py_department.DEPARTMENT_CHOICES = (('AG', 'Alto Paraguay'), ('AA', 'Alto Paraná'), ('AM', 'Amambay'), ('AS', 'Asunción'), ('BQ', 'Boquerón'), ('CG', 'Caaguazú'), ('CZ', 'Caazapá'), ('CY', 'Canindeyú'), ('CE', 'Central'), ('CN', 'Concepción'), ('CR', 'Cordillera'), ('GU', 'Guairá'), ('IT', 'Itapúa'), ('MI', 'Misiones'), ('NE', 'Ñeembucú'), ('PG', 'Paraguarí'), ('PH', 'Pdte. Hayes'), ('SP', 'San Pedro'))

http://www.statoids.com/upy.html

localflavor.py_.py_department.DEPARTMENT_ROMAN_CHOICES = (('CN', 'I Concepción'), ('SP', 'II San Pedro'), ('CR', 'III Cordillera'), ('GU', 'IV Guairá'), ('CG', 'V Caaguazú'), ('CZ', 'VI Caazapá'), ('IT', 'VII Itapúa'), ('MI', 'VIII Misiones'), ('PG', 'IX Paraguarí'), ('AA', 'X Alto Paraná'), ('CE', 'XI Central'), ('NE', 'XII Ñeembucú'), ('AM', 'XIII Amambay'), ('CY', 'XIV Canindeyú'), ('PH', 'XV Pdte. Hayes'), ('AG', 'XVI Alto Paraguay'), ('BQ', 'XVII Boquerón'), ('AS', 'XVIII Asunción'))

list of departments sorted by its roman number

Romania (ro)

Forms

Romanian specific form helpers.

class localflavor.ro.forms.ROCIFField(max_length=10, min_length=2, *args, **kwargs)[source]

A Romanian fiscal identity code (CIF) field

For CIF validation algorithm see: https://ro.wikipedia.org/wiki/Cod_de_Identificare_Fiscal%C4%83

clean(value)[source]

CIF validation

Args:
value: the CIF code
class localflavor.ro.forms.ROCNPField(max_length=13, min_length=13, *args, **kwargs)[source]

A Romanian personal identity code (CNP) field

For CNP validation algorithm see: https://ro.wikipedia.org/wiki/Cod_numeric_personal

clean(value)[source]

CNP validations

Args:
value: the CNP code
class localflavor.ro.forms.ROCountyField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input is a Romanian county name or abbreviation. It normalizes the input to the standard vehicle registration abbreviation for the given county.

WARNING: This field will only accept names written with diacritics (using comma bellow for ș and ț); consider using ROCountySelect if this behavior is unacceptable for you

For more information regarding diacritics see Comma-below (ș and ț) versus cedilla (ş and ţ) and Unicode and HTML sections from: Romanian alphabet.

Example:
Argeș => valid (comma bellow)
Argeş => invalid (cedilla)
Arges => invalid (no diacritic)
class localflavor.ro.forms.ROCountySelect(attrs=None)[source]

A Select widget that uses a list of Romanian counties (județe) as its choices.

class localflavor.ro.forms.ROIBANField(*args, **kwargs)[source]

Romanian International Bank Account Number (IBAN) field

Changed in version 1.1: Validation error messages changed to the messages used in IBANFormField

Deprecated since version 1.1: Use IBANFormField with included_countries=(‘RO’,) option instead.

class localflavor.ro.forms.ROPhoneNumberField(max_length=20, min_length=3, *args, **kwargs)[source]

Romanian phone number field

Changed in version 1.1:
Made the field also accept national short phone numbers and 7-digit regional phone numbers besides the regular ones.
Official documentation (in English): http://www.ancom.org.ro/en/pnn_1300
Official documentation (in Romanian): http://www.ancom.org.ro/pnn_1300
clean(value)[source]

Strips braces, dashes, dots and spaces. Checks the final length.

Args:
value: the phone number
class localflavor.ro.forms.ROPostalCodeField(max_length=6, min_length=6, *args, **kwargs)[source]

Romanian postal code field.

Data

localflavor.ro.ro_counties.COUNTIES_CHOICES = (('AB', 'Alba'), ('AR', 'Arad'), ('AG', 'Argeș'), ('BC', 'Bacău'), ('BH', 'Bihor'), ('BN', 'Bistrița-Năsăud'), ('BT', 'Botoșani'), ('BV', 'Brașov'), ('BR', 'Brăila'), ('B', 'București'), ('BZ', 'Buzău'), ('CS', 'Caraș-Severin'), ('CL', 'Călărași'), ('CJ', 'Cluj'), ('CT', 'Constanța'), ('CV', 'Covasna'), ('DB', 'Dâmbovița'), ('DJ', 'Dolj'), ('GL', 'Galați'), ('GR', 'Giurgiu'), ('GJ', 'Gorj'), ('HR', 'Harghita'), ('HD', 'Hunedoara'), ('IL', 'Ialomița'), ('IS', 'Iași'), ('IF', 'Ilfov'), ('MM', 'Maramureș'), ('MH', 'Mehedinți'), ('MS', 'Mureș'), ('NT', 'Neamț'), ('OT', 'Olt'), ('PH', 'Prahova'), ('SM', 'Satu Mare'), ('SJ', 'Sălaj'), ('SB', 'Sibiu'), ('SV', 'Suceava'), ('TR', 'Teleorman'), ('TM', 'Timiș'), ('TL', 'Tulcea'), ('VS', 'Vaslui'), ('VL', 'Vâlcea'), ('VN', 'Vrancea'))

A list of Romanian counties as choices in a formfield.

Russia (ru)

Forms

Russian-specific forms helpers

class localflavor.ru.forms.RUAlienPassportNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

Russian alien’s passport number format: XX XXXXXXX where X - any digit.

class localflavor.ru.forms.RUCountySelect(attrs=None)[source]

A Select widget that uses a list of Russian Counties as its choices.

class localflavor.ru.forms.RUPassportNumberField(max_length=None, min_length=None, *args, **kwargs)[source]

Russian internal passport number format: XXXX XXXXXX where X - any digit.

class localflavor.ru.forms.RUPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

Russian Postal code field. Format: XXXXXX, where X is any digit, and first digit is not zero.

class localflavor.ru.forms.RURegionSelect(attrs=None)[source]

A Select widget that uses a list of Russian Regions as its choices.

Data

localflavor.ru.ru_regions.RU_COUNTY_CHOICES = (('Central Federal County', 'Central Federal County'), ('South Federal County', 'South Federal County'), ('North-West Federal County', 'North-West Federal County'), ('Far-East Federal County', 'Far-East Federal County'), ('Siberian Federal County', 'Siberian Federal County'), ('Ural Federal County', 'Ural Federal County'), ('Privolzhsky Federal County', 'Privolzhsky Federal County'), ('North-Caucasian Federal County', 'North-Caucasian Federal County'))

http://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации

localflavor.ru.ru_regions.RU_REGIONS_CHOICES = (('77', 'Moskva'), ('78', 'Saint-Peterburg'), ('50', "Moskovskaya oblast'"), ('01', 'Adygeya, Respublika'), ('02', 'Bashkortostan, Respublika'), ('03', 'Buryatia, Respublika'), ('04', 'Altay, Respublika'), ('05', 'Dagestan, Respublika'), ('06', 'Ingushskaya Respublika'), ('07', 'Kabardino-Balkarskaya Respublika'), ('08', 'Kalmykia, Respublika'), ('09', 'Karachaevo-Cherkesskaya Respublika'), ('10', 'Karelia, Respublika'), ('11', 'Komi, Respublika'), ('12', 'Mariy Ehl, Respublika'), ('13', 'Mordovia, Respublika'), ('14', 'Sakha, Respublika (Yakutiya)'), ('15', 'Severnaya Osetia, Respublika (Alania)'), ('16', 'Tatarstan, Respublika'), ('17', 'Tyva, Respublika (Tuva)'), ('18', 'Udmurtskaya Respublika'), ('19', 'Khakassiya, Respublika'), ('95', 'Chechenskaya Respublika'), ('21', 'Chuvashskaya Respublika'), ('22', 'Altayskiy Kray'), ('80', 'Zabaykalskiy Kray'), ('82', 'Kamchatskiy Kray'), ('23', 'Krasnodarskiy Kray'), ('24', 'Krasnoyarskiy Kray'), ('81', 'Permskiy Kray'), ('25', 'Primorskiy Kray'), ('26', "Stavropol'siyy Kray"), ('27', 'Khabarovskiy Kray'), ('28', "Amurskaya oblast'"), ('29', "Arkhangel'skaya oblast'"), ('30', "Astrakhanskaya oblast'"), ('31', "Belgorodskaya oblast'"), ('32', "Bryanskaya oblast'"), ('33', "Vladimirskaya oblast'"), ('34', "Volgogradskaya oblast'"), ('35', "Vologodskaya oblast'"), ('36', "Voronezhskaya oblast'"), ('37', "Ivanovskaya oblast'"), ('38', "Irkutskaya oblast'"), ('39', "Kaliningradskaya oblast'"), ('40', "Kaluzhskaya oblast'"), ('42', "Kemerovskaya oblast'"), ('43', "Kirovskaya oblast'"), ('44', "Kostromskaya oblast'"), ('45', "Kurganskaya oblast'"), ('46', "Kurskaya oblast'"), ('47', "Leningradskaya oblast'"), ('48', "Lipeckaya oblast'"), ('49', "Magadanskaya oblast'"), ('51', "Murmanskaya oblast'"), ('52', "Nizhegorodskaja oblast'"), ('53', "Novgorodskaya oblast'"), ('54', "Novosibirskaya oblast'"), ('55', "Omskaya oblast'"), ('56', "Orenburgskaya oblast'"), ('57', "Orlovskaya oblast'"), ('58', "Penzenskaya oblast'"), ('60', "Pskovskaya oblast'"), ('61', "Rostovskaya oblast'"), ('62', "Rjazanskaya oblast'"), ('63', "Samarskaya oblast'"), ('64', "Saratovskaya oblast'"), ('65', "Sakhalinskaya oblast'"), ('66', "Sverdlovskaya oblast'"), ('67', "Smolenskaya oblast'"), ('68', "Tambovskaya oblast'"), ('69', "Tverskaya oblast'"), ('70', "Tomskaya oblast'"), ('71', "Tul'skaya oblast'"), ('72', "Tyumenskaya oblast'"), ('73', "Ul'ianovskaya oblast'"), ('74', "Chelyabinskaya oblast'"), ('76', "Yaroslavskaya oblast'"), ('79', "Evreyskaya avtonomnaja oblast'"), ('83', 'Neneckiy autonomnyy okrug'), ('86', 'Khanty-Mansiyskiy avtonomnyy okrug - Yugra'), ('87', 'Chukotskiy avtonomnyy okrug'), ('89', 'Yamalo-Neneckiy avtonomnyy okrug'))

http://ru.wikipedia.org/wiki/Федеральные_округа_Российской_Федерации

Sweden (se)

Forms

Swedish specific Form helpers

class localflavor.se.forms.SECountySelect(attrs=None)[source]

A Select form widget that uses a list of the Swedish counties (län) as its choices.

The cleaned value is the official county code – see http://en.wikipedia.org/wiki/Counties_of_Sweden for a list.

class localflavor.se.forms.SEOrganisationNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as a Swedish organisation number (organisationsnummer).

It accepts the same input as SEPersonalIdentityField (for sole proprietorships (enskild firma). However, co-ordination numbers are not accepted.

It also accepts ordinary Swedish organisation numbers with the format NNNNNNNNNN.

The return value will be YYYYMMDDXXXX for sole proprietors, and NNNNNNNNNN for other organisations.

class localflavor.se.forms.SEPersonalIdentityNumberField(coordination_number=True, *args, **kwargs)[source]

A form field that validates input as a Swedish personal identity number (personnummer).

The correct formats are YYYYMMDD-XXXX, YYYYMMDDXXXX, YYMMDD-XXXX, YYMMDDXXXX and YYMMDD+XXXX.

A + indicates that the person is older than 100 years, which will be taken into consideration when the date is validated.

The checksum will be calculated and checked. The birth date is checked to be a valid date.

By default, co-ordination numbers (samordningsnummer) will be accepted. To only allow real personal identity numbers, pass the keyword argument coordination_number=False to the constructor.

The cleaned value will always have the format YYYYMMDDXXXX.

class localflavor.se.forms.SEPostalCodeField(*args, **kwargs)[source]

A form field that validates input as a Swedish postal code (postnummer). Valid codes consist of five digits (XXXXX). The number can optionally be formatted with a space after the third digit (XXX XX).

The cleaned value will never contain the space.

Utilities

localflavor.se.utils.id_number_checksum(gd)[source]

Calculates a Swedish ID number checksum, using the “Luhn”-algoritm

localflavor.se.utils.validate_id_birthday(gd, fix_coordination_number_day=True)[source]

Validates the birth_day and returns the datetime.date object for the birth_day.

If the date is an invalid birth day, a ValueError will be raised.

Data

localflavor.se.se_counties.COUNTY_CHOICES = (('AB', 'Stockholm'), ('AC', 'Västerbotten'), ('BD', 'Norrbotten'), ('C', 'Uppsala'), ('D', 'Södermanland'), ('E', 'Östergötland'), ('F', 'Jönköping'), ('G', 'Kronoberg'), ('H', 'Kalmar'), ('I', 'Gotland'), ('K', 'Blekinge'), ('M', 'Skåne'), ('N', 'Halland'), ('O', 'Västra Götaland'), ('S', 'Värmland'), ('T', 'Örebro'), ('U', 'Västmanland'), ('W', 'Dalarna'), ('X', 'Gävleborg'), ('Y', 'Västernorrland'), ('Z', 'Jämtland'))

An alphabetical list of Swedish counties, sorted by codes. http://en.wikipedia.org/wiki/Counties_of_Sweden

Singapore (sg)

New in version 1.1.

Forms

Singapore-specific Form helpers

Slovenia (si)

Forms

Slovenian specific form helpers.

class localflavor.si.forms.SIEMSOField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form for validating Slovenian personal identification number.

Additionally stores gender, nationality and birthday to self.info dictionary.

class localflavor.si.forms.SIPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

Slovenian phone number field.

Phone number must contain at least local area code. Country code can be present.

Examples:

  • +38640XXXXXX
  • 0038640XXXXXX
  • 040XXXXXX
  • 01XXXXXX
  • 0590XXXXX
class localflavor.si.forms.SIPostalCodeField(*args, **kwargs)[source]

Slovenian post codes field.

class localflavor.si.forms.SIPostalCodeSelect(attrs=None)[source]

A Select widget that uses Slovenian postal codes as its choices.

class localflavor.si.forms.SITaxNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

Slovenian tax number field.

Valid input is SIXXXXXXXX or XXXXXXXX where X is a number.

http://zylla.wipos.p.lodz.pl/ut/translation.html#PZSI

Data

localflavor.si.si_postalcodes.SI_POSTALCODES = [(1000, 'Ljubljana'), (1215, 'Medvode'), (1216, 'Smlednik'), (1217, 'Vodice'), (1218, 'Komenda'), (1219, 'Laze v Tuhinju'), (1221, 'Motnik'), (1222, 'Trojane'), (1223, 'Blagovica'), (1225, 'Lukovica'), (1230, 'Domžale'), (1233, 'Dob'), (1234, 'Mengeš'), (1235, 'Radomlje'), (1236, 'Trzin'), (1241, 'Kamnik'), (1242, 'Stahovica'), (1251, 'Moravče'), (1252, 'Vače'), (1262, 'Dol pri Ljubljani'), (1270, 'Litija'), (1272, 'Polšnik'), (1273, 'Dole pri Litiji'), (1274, 'Gabrovka'), (1275, 'Šmartno pri Litiji'), (1276, 'Primskovo'), (1281, 'Kresnice'), (1282, 'Sava'), (1290, 'Grosuplje'), (1291, 'Škofljica'), (1292, 'Ig'), (1293, 'Šmarje - Sap'), (1294, 'Višnja Gora'), (1295, 'Ivančna Gorica'), (1296, 'Šentvid pri Stični'), (1301, 'Krka'), (1303, 'Zagradec'), (1310, 'Ribnica'), (1311, 'Turjak'), (1312, 'Videm - Dobrepolje'), (1313, 'Struge'), (1314, 'Rob'), (1315, 'Velike Lašče'), (1316, 'Ortnek'), (1317, 'Sodražica'), (1318, 'Loški Potok'), (1319, 'Draga'), (1330, 'Kočevje'), (1331, 'Dolenja vas'), (1332, 'Stara Cerkev'), (1336, 'Kostel'), (1337, 'Osilnica'), (1338, 'Kočevska Reka'), (1351, 'Brezovica pri Ljubljani'), (1352, 'Preserje'), (1353, 'Borovnica'), (1354, 'Horjul'), (1355, 'Polhov Gradec'), (1356, 'Dobrova'), (1357, 'Notranje Gorice'), (1358, 'Log pri Brezovici'), (1360, 'Vrhnika'), (1370, 'Logatec'), (1372, 'Hotedršica'), (1373, 'Rovte'), (1380, 'Cerknica'), (1381, 'Rakek'), (1382, 'Begunje pri Cerknici'), (1384, 'Grahovo'), (1385, 'Nova vas'), (1386, 'Stari trg pri Ložu'), (1410, 'Zagorje ob Savi'), (1411, 'Izlake'), (1412, 'Kisovec'), (1413, 'Čemšenik'), (1414, 'Podkum'), (1420, 'Trbovlje'), (1423, 'Dobovec'), (1430, 'Hrastnik'), (1431, 'Dol pri Hrastniku'), (1432, 'Zidani Most'), (1433, 'Radeče'), (1434, 'Loka pri Zidanem Mostu'), (2000, 'Maribor'), (2201, 'Zgornja Kungota'), (2204, 'Miklavž na Dravskem polju'), (2205, 'Starše'), (2206, 'Marjeta na Dravskem polju'), (2208, 'Pohorje'), (2211, 'Pesnica pri Mariboru'), (2212, 'Šentilj v Slovenskih goricah'), (2213, 'Zgornja Velka'), (2214, 'Sladki vrh'), (2215, 'Ceršak'), (2221, 'Jarenina'), (2222, 'Jakobski Dol'), (2223, 'Jurovski Dol'), (2229, 'Malečnik'), (2230, 'Lenart v Slovenskih goricah'), (2231, 'Pernica'), (2232, 'Voličina'), (2233, 'Sveta Ana v Slovenskih goricah'), (2234, 'Benedikt'), (2235, 'Sveta Trojica v Slovenskih goricah'), (2236, 'Cerkvenjak'), (2241, 'Spodnji Duplek'), (2242, 'Zgornja Korena'), (2250, 'Ptuj'), (2252, 'Dornava'), (2253, 'Destrnik'), (2254, 'Trnovska vas'), (2255, 'Vitomarci'), (2256, 'Juršinci'), (2257, 'Polenšak'), (2258, 'Sveti Tomaž'), (2259, 'Ivanjkovci'), (2270, 'Ormož'), (2272, 'Gorišnica'), (2273, 'Podgorci'), (2274, 'Velika Nedelja'), (2275, 'Miklavž pri Ormožu'), (2276, 'Kog'), (2277, 'Središče ob Dravi'), (2281, 'Markovci'), (2282, 'Cirkulane'), (2283, 'Zavrč'), (2284, 'Videm pri Ptuju'), (2285, 'Zgornji Leskovec'), (2286, 'Podlehnik'), (2287, 'Žetale'), (2288, 'Hajdina'), (2289, 'Stoperce'), (2310, 'Slovenska Bistrica'), (2311, 'Hoče'), (2312, 'Orehova vas'), (2313, 'Fram'), (2314, 'Zgornja Polskava'), (2315, 'Šmartno na Pohorju'), (2316, 'Zgornja Ložnica'), (2317, 'Oplotnica'), (2318, 'Laporje'), (2319, 'Poljčane'), (2321, 'Makole'), (2322, 'Majšperk'), (2323, 'Ptujska Gora'), (2324, 'Lovrenc na Dravskem polju'), (2325, 'Kidričevo'), (2326, 'Cirkovce'), (2327, 'Rače'), (2331, 'Pragersko'), (2341, 'Limbuš'), (2342, 'Ruše'), (2343, 'Fala'), (2344, 'Lovrenc na Pohorju'), (2345, 'Bistrica ob Dravi'), (2351, 'Kamnica'), (2352, 'Selnica ob Dravi'), (2353, 'Sv. Duh na Ostrem Vrhu'), (2354, 'Bresternica'), (2360, 'Radlje ob Dravi'), (2361, 'Ožbalt'), (2362, 'Kapla'), (2363, 'Podvelka'), (2364, 'Ribnica na Pohorju'), (2365, 'Vuhred'), (2366, 'Muta'), (2367, 'Vuzenica'), (2370, 'Dravograd'), (2371, 'Trbonje'), (2372, 'Libeliče'), (2373, 'Šentjanž pri Dravogradu'), (2380, 'Slovenj Gradec'), (2381, 'Podgorje pri Slovenj Gradcu'), (2382, 'Mislinja'), (2383, 'Šmartno pri Slovenj Gradcu'), (2390, 'Ravne na Koroškem'), (2391, 'Prevalje'), (2392, 'Mežica'), (2393, 'Črna na Koroškem'), (2394, 'Kotlje'), (3000, 'Celje'), (3201, 'Šmartno v Rožni dolini'), (3202, 'Ljubečna'), (3203, 'Nova Cerkev'), (3204, 'Dobrna'), (3205, 'Vitanje'), (3206, 'Stranice'), (3210, 'Slovenske Konjice'), (3211, 'Škofja vas'), (3212, 'Vojnik'), (3213, 'Frankolovo'), (3214, 'Zreče'), (3215, 'Loče'), (3220, 'Štore'), (3221, 'Teharje'), (3222, 'Dramlje'), (3223, 'Loka pri Žusmu'), (3224, 'Dobje pri Planini'), (3225, 'Planina pri Sevnici'), (3230, 'Šentjur'), (3231, 'Grobelno'), (3232, 'Ponikva'), (3233, 'Kalobje'), (3240, 'Šmarje pri Jelšah'), (3241, 'Podplat'), (3250, 'Rogaška Slatina'), (3252, 'Rogatec'), (3253, 'Pristava pri Mestinju'), (3254, 'Podčetrtek'), (3255, 'Buče'), (3256, 'Bistrica ob Sotli'), (3257, 'Podsreda'), (3260, 'Kozje'), (3261, 'Lesično'), (3262, 'Prevorje'), (3263, 'Gorica pri Slivnici'), (3264, 'Sveti Štefan'), (3270, 'Laško'), (3271, 'Šentrupert'), (3272, 'Rimske Toplice'), (3273, 'Jurklošter'), (3301, 'Petrovče'), (3302, 'Griže'), (3303, 'Gomilsko'), (3304, 'Tabor'), (3305, 'Vransko'), (3310, 'Žalec'), (3311, 'Šempeter v Savinjski dolini'), (3312, 'Prebold'), (3313, 'Polzela'), (3314, 'Braslovče'), (3320, 'Velenje - dostava'), (3322, 'Velenje - poštni predali'), (3325, 'Šoštanj'), (3326, 'Topolšica'), (3327, 'Šmartno ob Paki'), (3330, 'Mozirje'), (3331, 'Nazarje'), (3332, 'Rečica ob Savinji'), (3333, 'Ljubno ob Savinji'), (3334, 'Luče'), (3335, 'Solčava'), (3341, 'Šmartno ob Dreti'), (3342, 'Gornji Grad'), (4000, 'Kranj'), (4201, 'Zgornja Besnica'), (4202, 'Naklo'), (4203, 'Duplje'), (4204, 'Golnik'), (4205, 'Preddvor'), (4206, 'Zgornje Jezersko'), (4207, 'Cerklje na Gorenjskem'), (4208, 'Šenčur'), (4209, 'Žabnica'), (4210, 'Brnik - aerodrom'), (4211, 'Mavčiče'), (4212, 'Visoko'), (4220, 'Škofja Loka'), (4223, 'Poljane nad Škofjo Loko'), (4224, 'Gorenja vas'), (4225, 'Sovodenj'), (4226, 'Žiri'), (4227, 'Selca'), (4228, 'Železniki'), (4229, 'Sorica'), (4240, 'Radovljica'), (4243, 'Brezje'), (4244, 'Podnart'), (4245, 'Kropa'), (4246, 'Kamna Gorica'), (4247, 'Zgornje Gorje'), (4248, 'Lesce'), (4260, 'Bled'), (4263, 'Bohinjska Bela'), (4264, 'Bohinjska Bistrica'), (4265, 'Bohinjsko jezero'), (4267, 'Srednja vas v Bohinju'), (4270, 'Jesenice'), (4273, 'Blejska Dobrava'), (4274, 'Žirovnica'), (4275, 'Begunje na Gorenjskem'), (4276, 'Hrušica'), (4280, 'Kranjska Gora'), (4281, 'Mojstrana'), (4282, 'Gozd Martuljek'), (4283, 'Rateče - Planica'), (4290, 'Tržič'), (4294, 'Križe'), (5000, 'Nova Gorica'), (5210, 'Deskle'), (5211, 'Kojsko'), (5212, 'Dobrovo v Brdih'), (5213, 'Kanal'), (5214, 'Kal nad Kanalom'), (5215, 'Ročinj'), (5216, 'Most na Soči'), (5220, 'Tolmin'), (5222, 'Kobarid'), (5223, 'Breginj'), (5224, 'Srpenica'), (5230, 'Bovec'), (5231, 'Log pod Mangartom'), (5232, 'Soča'), (5242, 'Grahovo ob Bači'), (5243, 'Podbrdo'), (5250, 'Solkan'), (5251, 'Grgar'), (5252, 'Trnovo pri Gorici'), (5253, 'Čepovan'), (5261, 'Šempas'), (5262, 'Črniče'), (5263, 'Dobravlje'), (5270, 'Ajdovščina'), (5271, 'Vipava'), (5272, 'Podnanos'), (5273, 'Col'), (5274, 'Črni Vrh nad Idrijo'), (5275, 'Godovič'), (5280, 'Idrija'), (5281, 'Spodnja Idrija'), (5282, 'Cerkno'), (5283, 'Slap ob Idrijci'), (5290, 'Šempeter pri Gorici'), (5291, 'Miren'), (5292, 'Renče'), (5293, 'Volčja Draga'), (5294, 'Dornberk'), (5295, 'Branik'), (5296, 'Kostanjevica na Krasu'), (5297, 'Prvačina'), (6000, 'Koper'), (6210, 'Sežana'), (6215, 'Divača'), (6216, 'Podgorje'), (6217, 'Vremski Britof'), (6219, 'Lokev'), (6221, 'Dutovlje'), (6222, 'Štanjel'), (6223, 'Komen'), (6224, 'Senožeče'), (6225, 'Hruševje'), (6230, 'Postojna'), (6232, 'Planina'), (6240, 'Kozina'), (6242, 'Materija'), (6243, 'Obrov'), (6244, 'Podgrad'), (6250, 'Ilirska Bistrica'), (6251, 'Ilirska Bistrica - Trnovo'), (6253, 'Knežak'), (6254, 'Jelšane'), (6255, 'Prem'), (6256, 'Košana'), (6257, 'Pivka'), (6258, 'Prestranek'), (6271, 'Dekani'), (6272, 'Gračišče'), (6273, 'Marezige'), (6274, 'Šmarje'), (6275, 'Črni Kal'), (6276, 'Pobegi'), (6280, 'Ankaran - Ancarano'), (6281, 'Škofije'), (6310, 'Izola - Isola'), (6320, 'Portorož - Portorose'), (6330, 'Piran - Pirano'), (6333, 'Sečovlje - Sicciole'), (8000, 'Novo mesto'), (8210, 'Trebnje'), (8211, 'Dobrnič'), (8212, 'Velika Loka'), (8213, 'Veliki Gaber'), (8216, 'Mirna Peč'), (8220, 'Šmarješke Toplice'), (8222, 'Otočec'), (8230, 'Mokronog'), (8231, 'Trebelno'), (8232, 'Šentrupert'), (8233, 'Mirna'), (8250, 'Brežice'), (8251, 'Čatež ob Savi'), (8253, 'Artiče'), (8254, 'Globoko'), (8255, 'Pišece'), (8256, 'Sromlje'), (8257, 'Dobova'), (8258, 'Kapele'), (8259, 'Bizeljsko'), (8261, 'Jesenice na Dolenjskem'), (8262, 'Krška vas'), (8263, 'Cerklje ob Krki'), (8270, 'Krško'), (8272, 'Zdole'), (8273, 'Leskovec pri Krškem'), (8274, 'Raka'), (8275, 'Škocjan'), (8276, 'Bučka'), (8280, 'Brestanica'), (8281, 'Senovo'), (8282, 'Koprivnica'), (8283, 'Blanca'), (8290, 'Sevnica'), (8292, 'Zabukovje'), (8293, 'Studenec'), (8294, 'Boštanj'), (8295, 'Tržišče'), (8296, 'Krmelj'), (8297, 'Šentjanž'), (8310, 'Šentjernej'), (8311, 'Kostanjevica na Krki'), (8312, 'Podbočje'), (8321, 'Brusnice'), (8322, 'Stopiče'), (8323, 'Uršna sela'), (8330, 'Metlika'), (8331, 'Suhor'), (8332, 'Gradac'), (8333, 'Semič'), (8340, 'Črnomelj'), (8341, 'Adlešiči'), (8342, 'Stari trg ob Kolpi'), (8343, 'Dragatuš'), (8344, 'Vinica pri Črnomlju'), (8350, 'Dolenjske Toplice'), (8351, 'Straža'), (8360, 'Žužemberk'), (8361, 'Dvor'), (8362, 'Hinje'), (9000, 'Murska Sobota'), (9201, 'Puconci'), (9202, 'Mačkovci'), (9203, 'Petrovci'), (9204, 'Šalovci'), (9205, 'Hodoš - Hodos'), (9206, 'Križevci'), (9207, 'Prosenjakovci - Partosfalva'), (9208, 'Fokovci'), (9220, 'Lendava - Lendva'), (9221, 'Martjanci'), (9222, 'Bogojina'), (9223, 'Dobrovnik - Dobronak'), (9224, 'Turnišče'), (9225, 'Velika Polana'), (9226, 'Moravske Toplice'), (9227, 'Kobilje'), (9231, 'Beltinci'), (9232, 'Črenšovci'), (9233, 'Odranci'), (9240, 'Ljutomer'), (9241, 'Veržej'), (9242, 'Križevci pri Ljutomeru'), (9243, 'Mala Nedelja'), (9244, 'Sveti Jurij ob Ščavnici'), (9245, 'Spodnji Ivanjci'), (9250, 'Gornja Radgona'), (9251, 'Tišina'), (9252, 'Radenci'), (9253, 'Apače'), (9261, 'Cankova'), (9262, 'Rogašovci'), (9263, 'Kuzma'), (9264, 'Grad'), (9265, 'Bodonci')]

A list of Slovenian postal codes

Slovakia (sk)

Forms

Slovak-specific form helpers

class localflavor.sk.forms.SKDistrictSelect(attrs=None)[source]

A select widget with list of Slovak districts as choices.

class localflavor.sk.forms.SKPostalCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates its input as Slovak postal code. Valid form is XXXXX or XXX XX, where X represents integer.

clean(value)[source]

Validates the input and returns a string that contains only numbers. Returns an empty string for empty values.

class localflavor.sk.forms.SKRegionSelect(attrs=None)[source]

A select widget widget with list of Slovak regions as choices.

Data

localflavor.sk.sk_districts.DISTRICT_CHOICES = (('BB', 'Banska Bystrica'), ('BS', 'Banska Stiavnica'), ('BJ', 'Bardejov'), ('BN', 'Banovce nad Bebravou'), ('BR', 'Brezno'), ('BA1', 'Bratislava I'), ('BA2', 'Bratislava II'), ('BA3', 'Bratislava III'), ('BA4', 'Bratislava IV'), ('BA5', 'Bratislava V'), ('BY', 'Bytca'), ('CA', 'Cadca'), ('DT', 'Detva'), ('DK', 'Dolny Kubin'), ('DS', 'Dunajska Streda'), ('GA', 'Galanta'), ('GL', 'Gelnica'), ('HC', 'Hlohovec'), ('HE', 'Humenne'), ('IL', 'Ilava'), ('KK', 'Kezmarok'), ('KN', 'Komarno'), ('KE1', 'Kosice I'), ('KE2', 'Kosice II'), ('KE3', 'Kosice III'), ('KE4', 'Kosice IV'), ('KEO', 'Kosice - okolie'), ('KA', 'Krupina'), ('KM', 'Kysucke Nove Mesto'), ('LV', 'Levice'), ('LE', 'Levoca'), ('LM', 'Liptovsky Mikulas'), ('LC', 'Lucenec'), ('MA', 'Malacky'), ('MT', 'Martin'), ('ML', 'Medzilaborce'), ('MI', 'Michalovce'), ('MY', 'Myjava'), ('NO', 'Namestovo'), ('NR', 'Nitra'), ('NM', 'Nove Mesto nad Vahom'), ('NZ', 'Nove Zamky'), ('PE', 'Partizanske'), ('PK', 'Pezinok'), ('PN', 'Piestany'), ('PT', 'Poltar'), ('PP', 'Poprad'), ('PB', 'Povazska Bystrica'), ('PO', 'Presov'), ('PD', 'Prievidza'), ('PU', 'Puchov'), ('RA', 'Revuca'), ('RS', 'Rimavska Sobota'), ('RV', 'Roznava'), ('RK', 'Ruzomberok'), ('SB', 'Sabinov'), ('SC', 'Senec'), ('SE', 'Senica'), ('SI', 'Skalica'), ('SV', 'Snina'), ('SO', 'Sobrance'), ('SN', 'Spisska Nova Ves'), ('SL', 'Stara Lubovna'), ('SP', 'Stropkov'), ('SK', 'Svidnik'), ('SA', 'Sala'), ('TO', 'Topolcany'), ('TV', 'Trebisov'), ('TN', 'Trencin'), ('TT', 'Trnava'), ('TR', 'Turcianske Teplice'), ('TS', 'Tvrdosin'), ('VK', 'Velky Krtis'), ('VT', 'Vranov nad Toplou'), ('ZM', 'Zlate Moravce'), ('ZV', 'Zvolen'), ('ZC', 'Zarnovica'), ('ZH', 'Ziar nad Hronom'), ('ZA', 'Zilina'))

http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska

localflavor.sk.sk_regions.REGION_CHOICES = (('BB', 'Banska Bystrica region'), ('BA', 'Bratislava region'), ('KE', 'Kosice region'), ('NR', 'Nitra region'), ('PO', 'Presov region'), ('TN', 'Trencin region'), ('TT', 'Trnava region'), ('ZA', 'Zilina region'))

http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska

Tunisia (tn)

Tunisia-specific Form helpers.

class localflavor.tn.forms.TNGovernorateSelect(attrs=None)[source]

A Select widget that uses a list of the Tunisian governorates as its choices.

localflavor.tn.tn_governorates.GOVERNORATE_CHOICES = (('ariana', 'Ariana'), ('beja', 'Beja'), ('ben arous', 'Ben Arous'), ('bizert', 'Bizert'), ('gabes', 'Gabes'), ('gafsa', 'Gafsa'), ('jendouba', 'Jendouba'), ('kairouan', 'Kairouan'), ('kasserine', 'Kasserine'), ('kebili', 'Kebili'), ('kef', 'Kef'), ('mahdia', 'Mahdia'), ('manouba', 'Manouba'), ('medenine', 'Medenine'), ('monastir', 'Monastir'), ('nabeul', 'Nabeul'), ('sfax', 'Sfax'), ('sidi bouzid', 'Sidi Bouzid'), ('siliana', 'Siliana'), ('sousse', 'Sousse'), ('tataouine', 'Tataouine'), ('tozeur', 'Tozeur'), ('tunis', 'Tunis'), ('zaghouan', 'Zaghouan'))

All the 24 Tunisian Governorates http://en.wikipedia.org/wiki/Governorates_of_Tunisia

Turkey (tr)

Forms

class localflavor.tr.forms.TRIdentificationNumberField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A Turkey Identification Number number. See: http://tr.wikipedia.org/wiki/T%C3%BCrkiye_Cumhuriyeti_Kimlik_Numaras%C4%B1

Checks the following rules to determine whether the number is valid:

  • The number is 11-digits.
  • First digit is not 0.
  • Conforms to the following two formula: (sum(1st, 3rd, 5th, 7th, 9th)*7 - sum(2nd,4th,6th,8th)) % 10 = 10th digit sum(1st to 10th) % 10 = 11th digit
class localflavor.tr.forms.TRPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as a Turkish phone number. The correct format is 0xxx xxx xxxx. +90xxx xxx xxxx and inputs without spaces also validates. The result is normalized to xxx xxx xxxx format.

class localflavor.tr.forms.TRPostalCodeField(max_length=5, min_length=5, *args, **kwargs)[source]

A form field that validates input as a Turkish zip code. Valid codes consist of five digits.

class localflavor.tr.forms.TRProvinceSelect(attrs=None)[source]

A Select widget that uses a list of provinces in Turkey as its choices.

Data

localflavor.tr.tr_provinces.PROVINCE_CHOICES = (('01', 'Adana'), ('02', 'Adıyaman'), ('03', 'Afyonkarahisar'), ('04', 'Ağrı'), ('68', 'Aksaray'), ('05', 'Amasya'), ('06', 'Ankara'), ('07', 'Antalya'), ('75', 'Ardahan'), ('08', 'Artvin'), ('09', 'Aydın'), ('10', 'Balıkesir'), ('74', 'Bartın'), ('72', 'Batman'), ('69', 'Bayburt'), ('11', 'Bilecik'), ('12', 'Bingöl'), ('13', 'Bitlis'), ('14', 'Bolu'), ('15', 'Burdur'), ('16', 'Bursa'), ('17', 'Çanakkale'), ('18', 'Çankırı'), ('19', 'Çorum'), ('20', 'Denizli'), ('21', 'Diyarbakır'), ('81', 'Düzce'), ('22', 'Edirne'), ('23', 'Elazığ'), ('24', 'Erzincan'), ('25', 'Erzurum'), ('26', 'Eskişehir'), ('27', 'Gaziantep'), ('28', 'Giresun'), ('29', 'Gümüşhane'), ('30', 'Hakkari'), ('31', 'Hatay'), ('76', 'Iğdır'), ('32', 'Isparta'), ('33', 'Mersin'), ('34', 'İstanbul'), ('35', 'İzmir'), ('78', 'Karabük'), ('36', 'Kars'), ('37', 'Kastamonu'), ('38', 'Kayseri'), ('39', 'Kırklareli'), ('40', 'Kırşehir'), ('41', 'Kocaeli'), ('42', 'Konya'), ('43', 'Kütahya'), ('44', 'Malatya'), ('45', 'Manisa'), ('46', 'Kahramanmaraş'), ('70', 'Karaman'), ('71', 'Kırıkkale'), ('79', 'Kilis'), ('47', 'Mardin'), ('48', 'Muğla'), ('49', 'Muş'), ('50', 'Nevşehir'), ('51', 'Niğde'), ('52', 'Ordu'), ('80', 'Osmaniye'), ('53', 'Rize'), ('54', 'Sakarya'), ('55', 'Samsun'), ('56', 'Siirt'), ('57', 'Sinop'), ('58', 'Sivas'), ('73', 'Şırnak'), ('59', 'Tekirdağ'), ('60', 'Tokat'), ('61', 'Trabzon'), ('62', 'Tunceli'), ('63', 'Şanlıurfa'), ('64', 'Uşak'), ('65', 'Van'), ('77', 'Yalova'), ('66', 'Yozgat'), ('67', 'Zonguldak'))

A list of Turkish provinces

United States of America (us)

Forms

USA-specific Form helpers

class localflavor.us.forms.USPSSelect(attrs=None)[source]

A Select widget that uses a list of US Postal Service codes as its choices.

Note

If you are looking for a form field that validates U.S. ZIP codes please use USZipCodeField.

class localflavor.us.forms.USPhoneNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field that validates input as a U.S. phone number.

class localflavor.us.forms.USSocialSecurityNumberField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A United States Social Security number.

Checks the following rules to determine whether the number is valid:

  • Conforms to the XXX-XX-XXXX format.
  • No group consists entirely of zeroes.
  • The leading group is not “666” (block “666” will never be allocated).
  • The number is not in the promotional block 987-65-4320 through 987-65-4329, which are permanently invalid.
  • The number is not one known to be invalid due to otherwise widespread promotional use or distribution (e.g., the Woolworth’s number or the 1962 promotional number).

New in version 1.1.

class localflavor.us.forms.USStateField(required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=[], localize=False, disabled=False, label_suffix=None)[source]

A form field that validates its input is a U.S. state name or abbreviation. It normalizes the input to the standard two-leter postal service abbreviation for the given state.

class localflavor.us.forms.USStateSelect(attrs=None)[source]

A Select widget that uses a list of U.S. states/territories as its choices.

class localflavor.us.forms.USZipCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

” A form field that validates input as a U.S. ZIP code. Valid formats are XXXXX or XXXXX-XXXX.

Note

If you are looking for a form field with a list of U.S. Postal Service locations please use USPSSelect.

New in version 1.1.

Whitespace around the ZIP code is accepted and automatically trimmed.

Models

class localflavor.us.models.PhoneNumberField(*args, **kwargs)[source]

A CharField that checks that the value is a valid U.S.A.-style phone number (in the format XXX-XXX-XXXX).

class localflavor.us.models.USPostalCodeField(*args, **kwargs)[source]

” A model field that forms represent as a USPSSelect` field and stores the two-letter U.S. Postal Service abbreviation in the database.

Note

If you are looking for a model field that validates U.S. ZIP codes please use USZipCodeField.

class localflavor.us.models.USSocialSecurityNumberField(*args, **kwargs)[source]

A model field that forms represent as forms.USSocialSecurityNumberField and stores in the format XXX-XX-XXXX.

New in version 1.1.

class localflavor.us.models.USStateField(*args, **kwargs)[source]

A model field that forms represent as a forms.USStateField field and stores the two-letter U.S. state abbreviation in the database.

class localflavor.us.models.USZipCodeField(*args, **kwargs)[source]

A model field that forms represent as a USZipCodeField field and stores the U.S. ZIP code in the database.

Note

If you are looking for a model field with a list of U.S. Postal Service locations please use USPostalCodeField.

New in version 1.1.

Data

localflavor.us.us_states.CONTIGUOUS_STATES = (('AL', 'Alabama'), ('AZ', 'Arizona'), ('AR', 'Arkansas'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DE', 'Delaware'), ('DC', 'District of Columbia'), ('FL', 'Florida'), ('GA', 'Georgia'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('ME', 'Maine'), ('MD', 'Maryland'), ('MA', 'Massachusetts'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MS', 'Mississippi'), ('MO', 'Missouri'), ('MT', 'Montana'), ('NE', 'Nebraska'), ('NV', 'Nevada'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NY', 'New York'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PA', 'Pennsylvania'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'), ('VA', 'Virginia'), ('WA', 'Washington'), ('WV', 'West Virginia'), ('WI', 'Wisconsin'), ('WY', 'Wyoming'))

The 48 contiguous states, plus the District of Columbia.

localflavor.us.us_states.US_STATES = (('AK', 'Alaska'), ('AL', 'Alabama'), ('AR', 'Arkansas'), ('AZ', 'Arizona'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DC', 'District of Columbia'), ('DE', 'Delaware'), ('FL', 'Florida'), ('GA', 'Georgia'), ('HI', 'Hawaii'), ('IA', 'Iowa'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('MA', 'Massachusetts'), ('MD', 'Maryland'), ('ME', 'Maine'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MO', 'Missouri'), ('MS', 'Mississippi'), ('MT', 'Montana'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('NE', 'Nebraska'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NV', 'Nevada'), ('NY', 'New York'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PA', 'Pennsylvania'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VA', 'Virginia'), ('VT', 'Vermont'), ('WA', 'Washington'), ('WI', 'Wisconsin'), ('WV', 'West Virginia'), ('WY', 'Wyoming'))

tuple() -> empty tuple tuple(iterable) -> tuple initialized from iterable’s items

If the argument is a tuple, the return value is the same object.

localflavor.us.us_states.US_TERRITORIES = (('AS', 'American Samoa'), ('GU', 'Guam'), ('MP', 'Northern Mariana Islands'), ('PR', 'Puerto Rico'), ('VI', 'Virgin Islands'))

Non-state territories.

localflavor.us.us_states.ARMED_FORCES_STATES = (('AA', 'Armed Forces Americas'), ('AE', 'Armed Forces Europe'), ('AP', 'Armed Forces Pacific'))

Military postal “states”. Note that ‘AE’ actually encompasses Europe, Canada, Africa and the Middle East.

localflavor.us.us_states.COFA_STATES = (('FM', 'Federated States of Micronesia'), ('MH', 'Marshall Islands'), ('PW', 'Palau'))

Non-US locations serviced by USPS (under Compact of Free Association).

localflavor.us.us_states.OBSOLETE_STATES = (('CM', 'Commonwealth of the Northern Mariana Islands'), ('CZ', 'Panama Canal Zone'), ('PI', 'Philippine Islands'), ('TT', 'Trust Territory of the Pacific Islands'))

Obsolete abbreviations (no longer US territories/USPS service, or code changed).

localflavor.us.us_states.STATE_CHOICES = (('AL', 'Alabama'), ('AK', 'Alaska'), ('AS', 'American Samoa'), ('AZ', 'Arizona'), ('AR', 'Arkansas'), ('AA', 'Armed Forces Americas'), ('AE', 'Armed Forces Europe'), ('AP', 'Armed Forces Pacific'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DE', 'Delaware'), ('DC', 'District of Columbia'), ('FL', 'Florida'), ('GA', 'Georgia'), ('GU', 'Guam'), ('HI', 'Hawaii'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('ME', 'Maine'), ('MD', 'Maryland'), ('MA', 'Massachusetts'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MS', 'Mississippi'), ('MO', 'Missouri'), ('MT', 'Montana'), ('NE', 'Nebraska'), ('NV', 'Nevada'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NY', 'New York'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('MP', 'Northern Mariana Islands'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PA', 'Pennsylvania'), ('PR', 'Puerto Rico'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'), ('VI', 'Virgin Islands'), ('VA', 'Virginia'), ('WA', 'Washington'), ('WV', 'West Virginia'), ('WI', 'Wisconsin'), ('WY', 'Wyoming'))

All US states and territories plus DC and military mail.

localflavor.us.us_states.USPS_CHOICES = (('AL', 'Alabama'), ('AK', 'Alaska'), ('AS', 'American Samoa'), ('AZ', 'Arizona'), ('AR', 'Arkansas'), ('AA', 'Armed Forces Americas'), ('AE', 'Armed Forces Europe'), ('AP', 'Armed Forces Pacific'), ('CA', 'California'), ('CO', 'Colorado'), ('CT', 'Connecticut'), ('DE', 'Delaware'), ('DC', 'District of Columbia'), ('FM', 'Federated States of Micronesia'), ('FL', 'Florida'), ('GA', 'Georgia'), ('GU', 'Guam'), ('HI', 'Hawaii'), ('ID', 'Idaho'), ('IL', 'Illinois'), ('IN', 'Indiana'), ('IA', 'Iowa'), ('KS', 'Kansas'), ('KY', 'Kentucky'), ('LA', 'Louisiana'), ('ME', 'Maine'), ('MH', 'Marshall Islands'), ('MD', 'Maryland'), ('MA', 'Massachusetts'), ('MI', 'Michigan'), ('MN', 'Minnesota'), ('MS', 'Mississippi'), ('MO', 'Missouri'), ('MT', 'Montana'), ('NE', 'Nebraska'), ('NV', 'Nevada'), ('NH', 'New Hampshire'), ('NJ', 'New Jersey'), ('NM', 'New Mexico'), ('NY', 'New York'), ('NC', 'North Carolina'), ('ND', 'North Dakota'), ('MP', 'Northern Mariana Islands'), ('OH', 'Ohio'), ('OK', 'Oklahoma'), ('OR', 'Oregon'), ('PW', 'Palau'), ('PA', 'Pennsylvania'), ('PR', 'Puerto Rico'), ('RI', 'Rhode Island'), ('SC', 'South Carolina'), ('SD', 'South Dakota'), ('TN', 'Tennessee'), ('TX', 'Texas'), ('UT', 'Utah'), ('VT', 'Vermont'), ('VI', 'Virgin Islands'), ('VA', 'Virginia'), ('WA', 'Washington'), ('WV', 'West Virginia'), ('WI', 'Wisconsin'), ('WY', 'Wyoming'))

All US Postal Service locations.

localflavor.us.us_states.STATES_NORMALIZED = {'me': 'ME', 'ok': 'OK', 'n d': 'ND', 'aa': 'AA', 'arizona': 'AZ', 'ms': 'MS', 'n j': 'NJ', 'okla': 'OK', 'vermont': 'VT', 'marinas islands of the pacific': 'MP', 'delaware': 'DE', 'colorado': 'CO', 'n m': 'NM', 'virgina': 'VA', 'oreg': 'OR', 'utah': 'UT', 'ill': 'IL', 'alaska': 'AK', 'as': 'AS', 'ne': 'NE', 'maryland': 'MD', 'guam': 'GU', 'marianas islands of the pacific': 'MP', 'district of columbia': 'DC', 'alabama': 'AL', 'n h': 'NH', 'colo': 'CO', 'ind': 'IN', 'nev': 'NV', 'idaho': 'ID', 'il': 'IL', 'conn': 'CT', 'vt': 'VT', 'ga': 'GA', 'la': 'LA', 'ma': 'MA', 'texas': 'TX', 'nj': 'NJ', 'arkansas': 'AR', 'nmex': 'NM', 'usvi': 'VI', 'sd': 'SD', 'in': 'IN', 'massachusetts': 'MA', 'west virginia': 'WV', 'az': 'AZ', 'co': 'CO', 'south carolina': 'SC', 'nd': 'ND', 'ae': 'AE', 'oklahoma': 'OK', 'ca': 'CA', 'puerto rico': 'PR', 'minn': 'MN', 'ohio': 'OH', 'ct': 'CT', 'california': 'CA', 'new hampshire': 'NH', 'tex': 'TX', 'minnesota': 'MN', 'american samao': 'AS', 'maine': 'ME', 'ala': 'AL', 's dak': 'SD', 'sc': 'SC', 'ariz': 'AZ', 'montana': 'MT', 'michigan': 'MI', 'mn': 'MN', 'ap': 'AP', 'nebraska': 'NE', 'ut': 'UT', 'id': 'ID', 'oregon': 'OR', 'wisc': 'WI', 'al': 'AL', 'tx': 'TX', 'miss': 'MS', 'oh': 'OH', 'marianas islands': 'MP', 'tennessee': 'TN', 'pr': 'PR', 'iowa': 'IA', 'or': 'OR', 'kansas': 'KS', 'mont': 'MT', 'wyoming': 'WY', 'mo': 'MO', 'deleware': 'DE', 'de': 'DE', 'wva': 'WV', 'territory of hawaii': 'HI', 'indiana': 'IN', 'us virgin islands': 'VI', 'calf': 'CA', 'missouri': 'MO', 'nevada': 'NV', 'illinois': 'IL', 'ore': 'OR', 'kentucky': 'KY', 'nebr': 'NE', 'sdak': 'SD', 'ks': 'KS', 'mi': 'MI', 'wi': 'WI', 'mp': 'MP', 'md': 'MD', 'new mexico': 'NM', 'del': 'DE', 'kans': 'KS', 'penn': 'PA', 'dc': 'DC', 'gu': 'GU', 'virgin islands': 'VI', 'virginia': 'VA', 'wis': 'WI', 'ak': 'AK', 'nc': 'NC', 'connecticut': 'CT', 'n dak': 'ND', 'mass': 'MA', 'ia': 'IA', 'new york': 'NY', 'mich': 'MI', 'ny': 'NY', 'washington': 'WA', 'wash': 'WA', 'wv': 'WV', 'va': 'VA', 'fl': 'FL', 'wyo': 'WY', 'wa': 'WA', 'louisiana': 'LA', 'northern mariana islands': 'MP', 'rhode island': 'RI', 'calif': 'CA', 'hawaii': 'HI', 'florida': 'FL', 'nh': 'NH', 'tenn': 'TN', 'w va': 'WV', 'mississippi': 'MS', 'mt': 'MT', 'north dakota': 'ND', 'pennsylvania': 'PA', 'n mex': 'NM', 'ar': 'AR', 'north carolina': 'NC', 'pa': 'PA', 'american samoa': 'AS', 'ark': 'AR', 'wisconsin': 'WI', 'ri': 'RI', 'viginia': 'VA', 'nm': 'NM', 'vi': 'VI', 'tn': 'TN', 'wy': 'WY', 'massachussetts': 'MA', 'hi': 'HI', 'kan': 'KS', 'fla': 'FL', 'nv': 'NV', 'neb': 'NE', 'georgia': 'GA', 'south dakota': 'SD', 'new jersey': 'NJ', 'ky': 'KY'}

Normalized versions of state names

Uruguay (uy)

Forms

UY-specific form helpers.

class localflavor.uy.forms.UYCIField(*args, **kwargs)[source]

A field that validates Uruguayan ‘Cedula de identidad’ (CI) numbers.

clean(value)[source]

Validates format and validation digit.

The official format is [X.]XXX.XXX-X but usually dots and/or slash are omitted so, when validating, those characters are ignored if found in the correct place. The three typically used formats are supported: [X]XXXXXXX, [X]XXXXXX-X and [X.]XXX.XXX-X.

class localflavor.uy.forms.UYDepartmentSelect(attrs=None)[source]

A Select widget that uses a list of Uruguayan departments as its choices.

Utilities

localflavor.uy.util.get_validation_digit(number)[source]

Calculates the validation digit for the given number.

Data

localflavor.uy.uy_departments.DEPARTMENT_CHOICES = (('G', 'Artigas'), ('A', 'Canelones'), ('E', 'Cerro Largo'), ('L', 'Colonia'), ('Q', 'Durazno'), ('N', 'Flores'), ('O', 'Florida'), ('P', 'Lavalleja'), ('B', 'Maldonado'), ('S', 'Montevideo'), ('I', 'Paysandú'), ('J', 'Río Negro'), ('F', 'Rivera'), ('C', 'Rocha'), ('H', 'Salto'), ('M', 'San José'), ('K', 'Soriano'), ('R', 'Tacuarembó'), ('D', 'Treinta y Tres'))

A list of Uruguayan departments as choices in a formfield.

South Africa (za)

Forms

South Africa-specific Form helpers

class localflavor.za.forms.ZAIDField(max_length=None, min_length=None, strip=True, *args, **kwargs)[source]

A form field for South African ID numbers – the checksum is validated using the Luhn checksum, and uses a simlistic (read: not entirely accurate) check for the birthdate

class localflavor.za.forms.ZAPostCodeField(max_length=None, min_length=None, *args, **kwargs)[source]

A form field that validates input as a South African postcode. Valid postcodes must have four digits.

class localflavor.za.forms.ZAProvinceSelect(attrs=None)[source]

A Select widget that uses a list of South African Provinces as its choices.

Data

localflavor.za.za_provinces.PROVINCE_CHOICES = (('EC', 'Eastern Cape'), ('FS', 'Free State'), ('GP', 'Gauteng'), ('KN', 'KwaZulu-Natal'), ('LP', 'Limpopo'), ('MP', 'Mpumalanga'), ('NC', 'Northern Cape'), ('NW', 'North West'), ('WC', 'Western Cape'))

A list of South African provinces as choices in a formfield.

Generic helpers

Forms

class localflavor.generic.forms.BICFormField(*args, **kwargs)[source]

A BIC consists of 8 (BIC8) or 11 (BIC11) alphanumeric characters.

BICs are also known as SWIFT-BIC, BIC code, SWIFT ID, SWIFT code or ISO 9362.

https://en.wikipedia.org/wiki/ISO_9362

New in version 1.1.

class localflavor.generic.forms.DateField(input_formats=None, *args, **kwargs)[source]

A date input field which uses non-US date input formats by default.

class localflavor.generic.forms.DateTimeField(input_formats=None, *args, **kwargs)[source]

A date and time input field which uses non-US date and time input formats by default.

class localflavor.generic.forms.IBANFormField(use_nordea_extensions=False, include_countries=None, *args, **kwargs)[source]

An IBAN consists of up to 34 alphanumeric characters.

To limit validation to specific countries, set the ‘include_countries’ argument with a tuple or list of ISO 3166-1 alpha-2 codes. For example, include_countries=(‘NL’, ‘BE, ‘LU’).

A list of countries that use IBANs as part of SEPA is included for convenience. To use this feature, set include_countries=IBAN_SEPA_COUNTRIES as an argument to the field.

Example:

from django import forms
from localflavor.generic.forms import IBANFormField
from localflavor.generic.countries.sepa import IBAN_SEPA_COUNTRIES

class MyForm(forms.Form):
    iban = IBANFormField(include_countries=IBAN_SEPA_COUNTRIES)

In addition to validating official IBANs, this field can optionally validate unofficial IBANs that have been catalogued by Nordea by setting the use_nordea_extensions argument to True.

https://en.wikipedia.org/wiki/International_Bank_Account_Number

New in version 1.1.

prepare_value(value)[source]

The display format for IBAN has a space every 4 characters.

class localflavor.generic.forms.SplitDateTimeField(input_date_formats=None, input_time_formats=None, *args, **kwargs)[source]

Split date and time input fields which use non-US date and time input formats by default.

Models

class localflavor.generic.models.BICField(*args, **kwargs)[source]

A BIC consists of 8 (BIC8) or 11 (BIC11) alphanumeric characters.

BICs are also known as SWIFT-BIC, BIC code, SWIFT ID, SWIFT code or ISO 9362.

https://en.wikipedia.org/wiki/ISO_9362

New in version 1.1.

class localflavor.generic.models.IBANField(*args, **kwargs)[source]

An IBAN consists of up to 34 alphanumeric characters.

To limit validation to specific countries, set the ‘include_countries’ argument with a tuple or list of ISO 3166-1 alpha-2 codes. For example, include_countries=(‘NL’, ‘BE, ‘LU’).

A list of countries that use IBANs as part of SEPA is included for convenience. To use this feature, set include_countries=IBAN_SEPA_COUNTRIES as an argument to the field.

Example:

from django.db import models
from localflavor.generic.models import IBANField
from localflavor.generic.countries.sepa import IBAN_SEPA_COUNTRIES

class MyModel(models.Model):
    iban = IBANField(include_countries=IBAN_SEPA_COUNTRIES)

In addition to validating official IBANs, this field can optionally validate unofficial IBANs that have been catalogued by Nordea by setting the use_nordea_extensions argument to True.

https://en.wikipedia.org/wiki/International_Bank_Account_Number

New in version 1.1.

Checksums

Common checksum routines.

localflavor.generic.checksums.luhn(candidate)[source]

Checks a candidate number for validity according to the Luhn algorithm (used in validation of, for example, credit cards). Both numeric and string candidates are accepted.

localflavor.generic.checksums.ean(candidate)[source]

Checks a candidate number for validity according to the EAN checksum calculation. Note that this validator does not enforce any length checks (usually 13 or 8).

http://en.wikipedia.org/wiki/International_Article_Number_(EAN)

New in version 1.1.

Validators

class localflavor.generic.validators.BICValidator[source]

A validator for SWIFT Business Identifier Codes (ISO 9362:2009). Validation is based on the BIC structure found on wikipedia.

https://en.wikipedia.org/wiki/ISO_9362#Structure

deconstruct(obj)

Returns a 3-tuple of class import path, positional arguments, and keyword arguments.

class localflavor.generic.validators.EANValidator(strip_nondigits=False, message=None)[source]

A generic validator for EAN like codes with the last digit being the checksum.

http://en.wikipedia.org/wiki/International_Article_Number_(EAN)

deconstruct(obj)

Returns a 3-tuple of class import path, positional arguments, and keyword arguments.

class localflavor.generic.validators.IBANValidator(use_nordea_extensions=False, include_countries=None)[source]

A validator for International Bank Account Numbers (IBAN - ISO 13616-1:2007).

deconstruct(obj)

Returns a 3-tuple of class import path, positional arguments, and keyword arguments.

static iban_checksum(value)[source]

Returns check digits for an input IBAN number. Original checksum in input value is ignored.

New in version 1.1.

Data

localflavor.generic.countries.iso_3166.ISO_3166_1_ALPHA2_COUNTRY_CODES = ('AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW', 'XK')

ISO 3166-1 country list. Sourced from https://www.iso.org/obp/ui on 2014-11-08

localflavor.generic.countries.sepa.IBAN_SEPA_COUNTRIES = ('AT', 'BE', 'BG', 'CH', 'CY', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GI', 'GR', 'HR', 'HU', 'IE', 'IS', 'IT', 'LI', 'LT', 'LU', 'LV', 'MC', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK', 'SM')

European Payments Council list of SEPA scheme countries as of 2 Sep 2015. http://www.europeanpaymentscouncil.eu/index.cfm/knowledge-bank/epc-documents/epc-list-of-sepa-scheme-countries/