Changelog

4.0 (2023-04-22)

New flavors:

  • Nepal LocalFlavor: Support for Nepal added (gh-451).
  • Belarus localflavor (gh-422, gh-442).
  • Ghana localflavor (gh-460).

New fields for existing flavors:

  • Added fr.forms.FRRNAField models field (gh-443).
  • Added permanent account number(PAN) field in Indian flavor. (gh-457).
  • Added the Canadian Models fields. (gh-465).

Modifications to existing flavors:

  • Properly validate IBANs using BBAN to ensure invalid IBANs cannot be entered, updated IBAN_SEPA_COUNTRIES and IBAN_COUNTRY_CODE_LENGTH to latest data (gh-486).
  • Fix typo in Marijampolė county name in LTCountySelect (gh-480).
  • Add support for new Finnish identity codes (gh-478).
  • CIF spanish starting with ‘U’ bug resolved (gh-469).
  • Fix error code for BRPostalCodeValidator (gh-448).
  • Fix spelling of the India state of Chhattisgarh (gh-444).
  • Fix CURP regex for MX flavor (gh-449).
  • Change text based fields that inherited from django.forms.Field to inherit from django.forms.CharField. The following fields have been updated (gh-446):
    • at.forms.ATSocialSecurityNumberField
    • br.forms.BRStateChoiceField
    • ca.forms.CAProvinceField
    • ca.forms.CASocialInsuranceNumberField
    • ch.forms.CHIdentityCardNumberField
    • cu.forms.CUProvinceField
    • cu.forms.CURegionField
    • cz.forms.CZBirthNumberField
    • cz.forms.CZICNumberField
    • de.forms.DEIdentityCardNumberField
    • ee.forms.EEBusinessRegistryCode
    • ee.forms.EEPersonalIdentificationCode
    • fi.forms.FISocialSecurityNumber
    • gr.forms.GRTaxNumberCodeField
    • hr.forms.HRJMBAGField
    • hr.forms.HRJMBGField
    • hr.forms.HRLicensePlateField
    • hr.forms.HRPostalCodeField
    • id_.forms.IDLicensePlateField
    • id_.forms.IDNationalIdentityNumberField
    • id_.forms.IDPostCodeField
    • il.forms.ILIDNumberField
    • in_.forms.INAadhaarNumberField
    • in_.forms.INStateField
    • ir.forms.IRIDNumberField
    • it.forms.ITVatNumberField
    • lt.forms.LTPostalCodeField
    • lv.forms.LVPersonalCodeField
    • lv.forms.LVPostalCodeField
    • no.forms.NOSocialSecurityNumber
    • nz.forms.NZBankAccountNumberField
    • pt.forms.PTCitizenCardNumberField
    • pt.forms.PTSocialSecurityNumberField
    • ro.forms.ROCountyField
    • tr.forms.TRIdentificationNumberField
    • us.forms.USStateField
  • Removed inconvenient word VACA from CURP_INCONVENIENT_WORDS for MX flavor

Other changes:

  • Use ‘return value’ when value is in the empty_values list (gh-461).
  • Dropped support for Django 2.2, 3.0 and 3.1.
  • Dropped support for Python 3.5.
  • Added support for Python 3.10 and 3.11.

3.1 (2021-05-28)

Breaking data changes:

A schema and data migration are required for users of mx.models.MXStateField and mx.forms.MXStateSelect. The following steps are required:

  • run manage.py makemigrations to generate a schema migration
  • migrate DIF to CDMX with a data migration

A data migration is required for users of in_.models.INStateField and in_.forms.INStateSelect. The following data migrations are required:

  • Migrate CG to CT for Chattisgarh
  • Migrate UA to UT for Uttarakhand
  • Migrate DD and DN to DH for Dadra and Nagar Haveli and Daman and Diu

A warning message will be displayed when mx.models.MXStateField, mx.forms.MXStateSelect, in_.models.INStateField or in_.forms.INStateSelect are used. See the localflavor online docs for instructions on how to suppress this warning once the migration has been completed.

New flavors:

  • None

New fields for existing flavors:

  • None

Modifications to existing flavors:

  • Fix fr.forms.FRNationalIdentificationNumber validation for people born overseas (gh-415).
  • Breaking data change: Updated Indian states and union territories names and code as per iso 3166 (https://www.iso.org/obp/ui/#iso:code:3166:IN). The key for Chattisgarh has been changed from CG to CT, the key for Uttarakhand has been changed from UA to UT, and the keys DD (Dadra and Nagar Haveli) and DN (Daman and Diu) have been removed and combined into DH (Dadra and Nagar Haveli and Daman and Diu). Ladakh (LA) is the new addition in the Union Territories. There are also a few modifications in the States and Union Territories names: Orissa (OR) is now Odisha (OR), Pondicherry (PY) is now Puducherry (PY) Andaman and Nicobar (AN) is now Andaman and Nicobar Islands (AN). (gh-427).
  • Correct sorting of US_STATES to sort by full name rather than code (gh-424 gh-428).
  • Added new region for CL (gh-432, gh-433).
  • Updated IBAN validation for changes in IBAN Registry release 89, March 2021 (gh-436).
  • Breaking data change: mx.mx_states.STATE_CHOICES has been updated to change DIF/Distrito Federal to CDMX/Ciudad de México, the legal name for this state as of 29 January 2016 (gh-235, gh-400, gh-438).

Other changes:

  • Extended validation of BICs to match official SEPA regulations (gh-418).
  • Removed positional arguments (*args) from form fields that inherit from Django’s forms.CharField and forms.Field. Positional arguments are not supported in the the parent form and did not work gh-421).
  • Added error codes to all ValidationError`s as recommended by `Django’s form validation documentation (gh-440).
  • Renamed zh_CN and zh_TW locales to zh_Hans and zh_Hant respectively to match the Django locale names.

3.0 (2020-02-19)

Breaking changes:

Dropped support for Django < 2.2.

The deprecated generic.checksums.luhn and generic.checksums.ean functions have been removed in this release. Please use python-stdnum instead.

Some Icelandic postcodes in IS_POSTALCODES have had their spelling updated, and some entries have been removed entirely. A warning message will be displayed when is_.forms.ISPostalCodeSelect is used. See the localflavor online docs for instructions on how to suppress this warning once any incompatibilities have been dealt with.

A data migration is required for users of it.forms.ITRegionProvinceSelect. The CI, VS, OG, and OT keys need to be migrated to SU to account for the 2016 Italian provincial changes. Users wishing to maintain compatibility with the old provincial structure will need to create a custom version of it.forms.ITRegionProvinceSelect. A warning message will be displayed when it.forms.ITRegionProvinceSelect is used. See the localflavor online docs for instructions on how to suppress this warning once the migration has been completed.

Using positional arguments with fields that inherit from Django’s forms.RegexField previously only worked with Django 1.11 but were ignored with Django >= 2.0. Positional arguments have now been removed from all fields that inherit from Django’s forms.RegexField. Any options needed on the parent forms.RegexField, forms.CharField or forms.Field must now be set with keyword arguments.

New flavors:

  • Egypt local flavor
  • Malaysia local flavor

New fields for existing flavors:

  • None

Modifications to existing flavors:

  • Extended Danish DK_POSTALCODES with small Danish islands getting independent post code since 2017 (gh-380).
  • Switched incorrect ar.forms.ARCBUField implementation to use python-stdnum instead (gh-391).
  • Use set value of strip in fields that inherit from django.forms.CharField (gh-392):
    • gb.forms.GBPostcodeField
    • si.forms.SIEMSOField
    • si.forms.SITaxNumberField
    • za.forms.ZAIDField
  • Updated Icelandic IS_POSTALCODES with missing entries, updated spelling of entries, and removed non-existing ones. See breaking changes notice above (gh-394).
  • Add Kalimantan Utara in PROVINCE_CHOICES for Indonesia local flavor (gh-385).
  • Add validation for women National identity number for Indonesia localflavor (gh-386).
  • Updated ITRegionProvinceSelect for 2016 Italian provincial changes. See breaking changes notice above (gh-378, gh-402).
  • Use the value returned by clean() in the following fields (gh-401, gh-403):
    • ca.forms.CAProvinceField
    • ca.forms.CASocialInsuranceNumberField
    • ch.forms.CHIdentityCardNumberField
    • cl.forms.CLRutField
    • cn.forms.CNIDCardField
    • cu.forms.CURegionField
    • cu.forms.CUProvinceField
    • cz.forms.CZBirthNumberField
    • cz.forms.CZICNumberField
    • de.forms.DEIdentityCardNumberField
    • ee.forms.EEPersonalIdentificationCode
    • eg.forms.EGNationalIDNumberField
    • es.forms.ESIdentityCardNumberField
    • es.forms.ESCCCField
    • fi.forms.FISocialSecurityNumber
    • fr.forms.FRNationalIdentificationNumber
    • fr.forms.FRSIRENField
    • fr.forms.FRSIRETField
    • gr.forms.GRTaxNumberCodeField
    • gr.forms.GRSocialSecurityNumberCodeField
    • hr.forms.HRJMBGField
    • hr.forms.HROIBField
    • hr.forms.HRLicensePlateField
    • hr.forms.HRPostalCodeField
    • hr.forms.HRJMBAGField
    • id.forms.IDPostCodeField
    • id.forms.IDLicensePlateField
    • id.forms.IDNationalIdentityNumberField
    • kw.forms.KWCivilIDNumberField
    • lt.forms.LTIDCodeField
    • lv.forms.LVPersonalCodeField
    • no.forms.NOSocialSecurityNumber
    • nz.forms.NZBankAccountNumberField
    • pl.forms.PLPESELField
    • pl.forms.PLNationalIDCardNumberField
    • pl.forms.PLNIPField
    • pl.forms.PLREGONField
    • pt.forms.PTCitizenCardNumberField
    • pt.forms.PTSocialSecurityNumberField
    • ro.forms.ROCountyField
    • sg.forms.SGNRICFINField
    • si.forms.SIEMSOField
    • si.forms.SITaxNumberField
    • tr.forms.TRIdentificationNumberField
    • us.forms.USSocialSecurityNumberField
    • us.forms.USStateField
    • za.forms.ZAIDField
  • Removed unused positional arguments from fields that inherit from forms.RegexField (gh-405).

Other changes:

  • Removed deprecated generic.checksums.luhn and generic.checksums.ean functions (gh-379).

2.2 (2019-05-07)

All deprecated code will be removed in the next release (3.0). Please run you project’s tests using python -Wd so that deprecation warnings appear and can be addressed.

New flavors:

  • Added local flavor for Iran (gh-359).

New fields for existing flavors:

  • Added BRPostalCodeField, BRCPFField and BRCNPJField models fields (gh-365).
  • Added EircodeField in IE flavor (gh-360) (gh-366).
  • Added Models for Spain (ESPostalCodeField and ESIdentityCardNumberField) (gh-357) (gh-372).

Modifications to existing flavors:

  • Deprecated generic.checksums.luhn and generic.checksums.ean. Please use the python-stdnum library instead. (gh-370).

Other changes:

  • Added dependency on python-stdnum which is currently used for Luhn and EAN validation in several local-flavors (gh-370).
  • Added support for Vatican IBAN (gh-355).
  • Extended validation of BICs to check for the correct character set (gh-364).
  • Run tests for Django 2.2 and Python 3.5, 3.6 and 3.7 (gh-368).
  • Run tests for Django 2.0 and Python 3.7 (gh-368).

2.1 (2018-08-24)

New flavors:

  • Added local flavor for Moldova (gh-309).

New fields for existing flavors:

  • NLLicensePlateField in NL flavor (gh-327).
  • GRSocialSecurityNumberField (AMKA) in GR flavor (gh-337).

Modifications to existing flavors:

  • Allowed invalid message to be overridden in ESIdentityCardNumberField (gh-339).
  • Fix COFA validation for USStateField (gh-303)

Other changes:

  • Added VAT identification number validator for all EU locales (gh-324).
  • Fix EAN validation when intermediate checksum is 10 (gh-331).
  • Confirmed support for Django 2.1.
  • Added 34 as a valid CUIT prefix value for ARCUITField (gh-342).

2.0 (2017-12-30)

All deprecated code has been removed in this release. Specifically, all of the phone number fields have been removed and we recommend that you use django-phonenumber-field instead. If you need to use django-phonenumber-field with Django 2.0, you will need to use the version from the Django 2.0 support pull request until this pull request is merged.

A full list of the removed classes and functions is the “Other changes” section below.

New flavors:

  • None

New fields for existing flavors:

  • None

Modifications to existing flavors:

  • Changed RUT to NIT in CONITField form field error message.
  • Fixed validation of Czech birth numbers for birth dates after 1st January 1954 (gh-315).

Other changes:

  • Added support for Django 2.0 and dropped support for Django < 1.11 (gh-310).
  • Fixed README and changelog documentation about dropping Python 2 and Django 1.11.
  • Removed all deprecated classes, functions and associated data / regular expressions. These are the classes and functions that have been removed (gh-321):
    • au.forms.AUPhoneNumberField
    • au.models.AUPhoneNumberField
    • be.forms.BEPhoneNumberField
    • br.forms.BRPhoneNumberField
    • br.forms.DV_maker
    • ca.forms.CAPhoneNumberField
    • ch.forms.CHPhoneNumberField
    • cn.forms.CNPhoneNumberField
    • cn.forms.CNCellNumberField
    • dk.forms.DKPhoneNumberField
    • es.forms.ESPhoneNumberField
    • fr.forms.FRPhoneNumberField
    • gr.forms.GRPhoneNumberField
    • gr.forms.GRMobilePhoneNumberField
    • hk.forms.HKPhoneNumberField (localflavor.hk has been removed because it only contained this field)
    • hr.forms.HRPhoneNumberField
    • hr.forms.HRPhoneNumberPrefixSelect
    • id_.forms.IDPhoneNumberField
    • il.forms.ILMobilePhoneNumberField
    • in.forms.INPhoneNumberField
    • is_.forms.ISPhoneNumberField
    • it.forms.ITPhoneNumberField
    • lt.forms.LTPhoneField
    • nl.forms.NLPhoneNumberField
    • nl.forms.NLSoFiNumberField
    • nl.models.NLBankAccountNumberField
    • nl.models.NLPhoneNumberField
    • nl.models.NLSoFiNumberField
    • nl.validators.NLBankAccountNumberFieldValidator
    • nl.validators.NLPhoneNumberFieldValidator
    • nl.validators.NLSoFiNumberFieldValidator
    • no.forms.NOPhoneNumberField
    • nz.forms.NZPhoneNumberField
    • pk.forms.PKPhoneNumberField
    • pk.models.PKPhoneNumberField
    • pt.forms.PTPhoneNumberField
    • ro.forms.ROIBANField
    • ro.forms.ROPhoneNumberField
    • sg.forms.SGPhoneNumberField
    • sg.forms.SGNRIC_FINField
    • si.forms.SIPhoneNumberField
    • tr.forms.TRPhoneNumberField
    • us.forms.USPhoneNumberField
    • us.models.PhoneNumberField

1.6 (2017-11-22)

All deprecated code will be removed in the next release. Please run you project’s tests using python -Wd so that deprecation warnings appear and can be addressed.

New flavors:

  • Added local flavor for Cuba (gh-292).

New fields for existing flavors:

  • Added KWAreaSelect form field (gh-296).
  • Added CONITField form field (gh-145).
  • Added nl.models.NLBSNField, nl.forms.NLBSNFormField and nl.validators.NLBSNFieldValidator (gh-314).

Modifications to existing flavors:

  • Fixed crash with USZipCodeField form validation when null=True is allowed (gh-295).
  • Deprecated br.forms.DV_maker, sg.forms.SGNRIC_FINField, lt.forms.LTPhoneField and ro.forms.ROIBANField (gh-305).
  • Added support for Swedish interim personal identity numbers (gh-308).
  • Deprecated nl.models.NLBankAccountNumberField (gh-307).
  • Updated IBANField to support the latest additions to the IBAN Registry (version 78 / August 2017).
  • Deprecated nl.models.NLSoFiNumberField, nl.forms.NLSoFiNumberField and nl.validators.NLSoFiNumberFieldValidator (gh-314).
  • Fixes issue with no.forms.NOBankAccountNumber unclean data (gh-311).

Other changes:

  • Added support for empty_value kwarg in Django >= 1.11 (gh-298).
  • Dropped support for Python 3.2.

1.5 (2017-05-26)

New flavors:

  • Added local flavor for Ukraine (gh-273).

New fields for existing flavors:

  • Added NOBankAccountNumber form field (gh-275).
  • Added AUCompanyNumberField model and form field (gh-278).

Modifications to existing flavors:

  • Added normalized versions of COFA state names for US (gh-277).
  • Fixed Dutch NLZipCodeField field not to store empty value as a single space (gh-280).
  • Fixed validation for old Australian tax file numbers (gh-284).

Other changes:

  • None

1.4 (2017-01-03)

New flavors:

  • Added local flavor for Venezuela (gh-245).
  • Added local flavor for Morocco (gh-270).

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).
  • Added FRRegion2016Select field to stick to current legislation (gh-260). and (gh-268).

Modifications to existing flavors:

  • Enhancements of localflavor.br.forms.BRCNPJField (gh-240 gh-254).
  • Fixed century bug with Kuwait Civil ID verification localflavor.kw.forms (gh-195).
  • Allow passing field name as first positional argument of IBANField (gh-236).
  • Fixed French FRNationalIdentificationNumber bug with imaginary birth month values (gh-242).
  • Fixed French FRNationalIdentificationNumber bug with corsican people born after 2000 (gh-242).
  • Fixed the translation for US state ‘Georgia’ from colliding with the country ‘Georgia’ (gh-250).
  • Fixed the styling errors and enabled prospector (gh-259).
  • Allow AU ABN value with spaces to validate (gh-266 gh-267).

Other changes:

  • Drop support for Django 1.7 (gh-218).
  • Ensure the migration framework generates schema migrations for model fields that change the max_length (gh-257). Users will need to generate migrations for any model fields they use with ‘makemigrations’.
  • Lazily generate US_STATES, STATE_CHOICES, and USPS_CHOICES (gh-203 gh-272).
  • Deprecated Phone Number fields (gh-262).
  • Bumped versions of requirements for testing (gh-274).

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