Django v1.0 documentation

localflavor アドオン

revision-up-to:8961 (1.0)

Python の「バッテリ入り (batteries included)」哲学に従って、 Django には様々 な国や文化のための有用なコードが付属しています。こうしたコードは 「localflavor アドオン」と呼ばれ、 django.contrib.localflavor パッケー ジに収められています。

localflavor パッケージは、各国、各文化圏のコードを、 それぞれ ISO 3166 国別コード に従って名付けたサブパッケージにまとめてい ます。

localflavor アドオンの大部分は、 forms フレームワークから導出された、ローカライ ズされたフォームコンポーネントで占められています。例えば、 USStateField にはアメリカの州 名略号を検証する方法が組み込まれていますし、 FISocialSecurityNumber は、フィ ンランドの社会保障番号の検証方法が組み込まれています。

ローカライズコンポーネントは、サブパッケージを import するだけで使えます。 例えば、フランスの電話番号を入力するためのフィールドを生成したければ、以下 のようにします:

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

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

localflavor でサポートされている国

localflavor がサポートしている国や文化圏は、以下の通 りです:

django.contrib.localfravor パッケージ内には、 generic というサブ パッケージもあります。このパッケージは、複数の国や文化で便利なコードをまと めています。現状では、このモジュールには、アメリカの標準をデフォルトとしな い、 forms に基づいた日付や時刻の入力フィールド が入っています。使い方を以下に示します:

from django import forms
from django.contrib.localflavor import generic

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

新たなローカルフレーバを追加する

私達は、これからもローカルフレーバを充実させていきたいと考えています。ロー カルフレーバに取り込みたいコードがあるなら、 チケットを作成 してください。 ローカルフレーバの作成でお願いしたいのは、文字列を Unicode リテラルで表現 (u'mystring') し、ファイルのエンコーディングに頼って指定しないで欲しい ということです。既にあるローカルフレーバのコードが参考になるでしょう。

Argentina: アルゼンチン (ar)

class ar.forms.ARPostalCodeField
入力が正しい旧形式のアルゼンチン郵便番号または CPA であるか検証するフォー ムフィールドです。
class ar.forms.ARDNIField
入力が正しい Documento Nacional de Identidad (DNI) であるか検証するフォー ムフィールドです。
class ar.forms.ARCUITField
入力が正しい Código Único de Identificación Tributaria (CUIT) 番号であ るかか検証するフォームフィールドです。
class ar.forms.ARProvinceSelect
アルゼンチンの州および自治領を選べる Select ウィジェットです。

Australia: オーストラリア (au)

class au.forms.AUPostCodeField
入力が正しいオーストラリアの郵便番号であるか検証するフォームフィールド です。
class au.forms.AUPhoneNumberField
入力がオーストラリアの電話番号であるか検証するフォームフィールドです。 有効な番号は 10 桁の数字からなります。
class au.forms.AUStateSelect
オーストラリアの州や領を選べる Select ウィジェットです。

Austria: オーストリア(at)

class at.forms.ATZipCodeField
入力が正しいオーストリアの ZIP コードであるか検証するフォームフィールド です。
class at.forms.ATStateSelect
選択肢のリストにオーストリアの州が設定された Select ウィジェット です。
class at.forms.ATSocialSecurityNumberField
入力が正しいオーストリアの社会保障番号であるか検証するフォームフィール ドです。

Brazil: ブラジル (br)

class br.forms.BRPhoneNumberField
入力が正しいブラジルの電話番号であるか検証するフォームフィールドです。 正しい形式は XX-XXXX-XXXX です。
class br.forms.BRZipCodeField
入力が正しいブラジルのZIPコードであるか検証するフォームフィールドです。 正しい形式はXXXXX-XXXです。
class br.forms.BRStateSelect
ブラジルの州や領を選べる Select ウィジェットです。

Canada: カナダ (ca)

class ca.forms.CAPhoneNumberField
入力が正しいカナダの電話番号であるか検証するフォームフィールドです。 正しい形式はXXX-XXX-XXXXです。
class ca.forms.CAPostalCodeField
入力が正しいカナダの郵便番号であるか検証するフォームフィールドです。 正しい形式はXXX XXXです。
class ca.forms.CAProvinceField
入力が正しいカナダの州名か、州名略号であるか検証するフォームフィールド です。
class ca.forms.CASocialInsuranceNumberField
入力が正しいカナダ社会保障番号 (SIN) であるか検証するフォームフィールド です。正しい SIN は、XXX-XXX-XXX の形式で、 Luhn mod-10 checksum 検証をパスします。
class ca.forms.CAProvinceSelect
カナダの州や領を選べる Select ウィジェットです。

Chile: チリ (cl)

class cl.forms.CLRutField
入力が正しいチリ国民識別番号 ('Rol Unico Tributario' or RUT) であるか検 証するフォームフィールドです。正しい形式は XX.XXX.XXX-X です。
class cl.forms.CLRegionSelect
チリの地域 (Regiones) を選べる Select ウィジェットです。

Finland: フィンランド (fi)

class fi.forms.FISocialSecurityNumber
入力が正しいフィンランド社会保障番号であるか検証するフォームフィールド です。
class fi.forms.FIZipCodeField
入力が正しいフィンランドのZIPコードであるか検証するフォームフィールドで す。正しいコードは 5 桁の数字からなります。
class fi.forms.FIMunicipalitySelect
フィンランドの市名 (municipality) を選べる Select ウィジェットです。

France: フランス (fr)

class fr.forms.FRPhoneNumberField
入力が正しいフランスの電話番号であるか検証するフォームフィールドです。 正しい形式は、 0X XX XX XX XX, 0X.XX.XX.XX.XX, または 0XXXXXXXXX です。 入力は 0X XX XX XX XX 形式に正規化されます。
class fr.forms.FRZipCodeField
入力が正しいフランスのZIPコードであるか検証するフォームフィールドです。 正しいZIPコードは5桁の数字からなります。
class fr.forms.FRDepartmentSelect
フランスの県名 (department) を選べる Select ウィジェットです。

Germany: ドイツ (de)

class de.forms.DEIdentityCardNumberField
入力が正しいドイツの身分保障番号 (Personalausweis) であるか検証するフォー ムフィールドです。正しい番号は XXXXXXXXXXX-XXXXXXX-XXXXXXX-X で、どの桁 グループもゼロだけで構成されていてはなりません。
class de.forms.DEZipCodeField
入力が正しいドイツのZIPコードであるか検証するフォームフィールドです。正 しいコードは5桁の数字からなります。
class de.forms.DEStateSelect
ドイツの州を選べる Select ウィジェットです。

Holland: オランダ (nl)

class nl.forms.NLPhoneNumberField
入力が正しいオランダの電話番号であるか検証するフォームフィールドです。
class nl.forms.NLSofiNumberField
入力が正しいオランダ社会保障番号 (SoFI/BSN) であるか検証するフォームフィー ルドです。
class nl.forms.NLZipCodeField
入力が正しいオランダのZIPコードであるか検証するフォームフィールドです。
class nl.forms.NLProvinceSelect
オランダの県 (province) を選べる Select ウィジェットです。

Iceland: アイスランド (is_)

class is_.forms.ISIdNumberField
入力が正しいアイスランドの身分証明番号 (kennitala) であるか検証するフォー ムフィールドです。形式は XXXXXX-XXXX です。
class is_.forms.ISPhoneNumberField
入力が正しいアイスランド電話番号 (7 桁の数字で、最初の3桁以後にハイフン やスペースが入っていてもよい) であるか検証するフォームフィールドです。
class is_.forms.ISPostalCodeSelect
アイスランドの郵便番号を選べる Select ウィジェットです。

India: インド (in_)

class in.forms.INStateField
入力が正しいインドの州・領名または略号であるか検証するフォームフィール ドです。入力は車両番号登録に使われる標準の 2 文字略号形式に正規化されま す。
class in.forms.INZipCodeField
入力が正しいインドのZIPコードであるか検証するフォームフィールドです。形 式は XXXXXXX です。
class in.forms.INStateSelect
インドの州や領を選べる Select ウィジェットです。

Italy: イタリア (it)

class it.forms.ITSocialSecurityNumberField
入力が正しいイタリア社会保障番号 (codice fiscale) であるか検証する フォームフィールドです。
class it.forms.ITVatNumberField
入力が正しいイタリアの VAT 番号 (partita IVA) であるか検証するフォーム フィールドです。
class it.forms.ITZipCodeField
入力が正しいイタリアのZIPコードであるか検証するフォームフィールドです。 正しいコードは 5 桁の数字です。
class it.forms.ITProvinceSelect
イタリアの県 (province) を選べる Select ウィジェットです。
class it.forms.ITRegionSelect
イタリアの地域名 (region) を選べる Select ウィジェットです。

Japan: 日本 (jp)

class jp.forms.JPPostalCodeField
入力が正しい日本の郵便番号であるか検証するフォームフィールドです。7 桁 の数字で、ハイフンはあってもなくても構いません。
class jp.forms.JPPrefectureSelect
日本の県を選べる Select ウィジェットです。

Mexico: メキシコ (mx)

class mx.forms.MXStateSelect
メキシコの州を選べる Select ウィジェットです。

Norway: ノルウェー (no)

class no.forms.NOSocialSecurityNumber
入力が正しいノルウェー社会保証番号 (personnummer) であるか検証するフォー ムフィールドです。
class no.forms.NOZipCodeField
入力が正しいノルウェーのZIPコードであるか検証するフォームフィールドです。 正しいコードは 4 桁の数字です。
class no.forms.NOMunicipalitySelect
ノルウェーの市名 (municipality, fylker) を選べる Select ウィジェッ トです。

Peru: ペルー (pe)

class pe.forms.PEDNIField
入力が正しいペルー国民識別番号 (DNI) であるか検証するフォームフィールド です。
class pe.forms.PERUCField
入力が正しい納税登録番号 (Registro Unico de Contribuyentes, RUC) である か検証するフォームフィールドです。正しい RUC 番号は 11 桁の数字形式です。
class pe.forms.PEDepartmentSelect
ペルーの県 (department) を選べる Select ウィジェットです。

Poland: ポーランド (pl)

class pl.forms.PLNationalIdentificationNumberField
入力が正しいポーランド国民識別番号 (PESEL) であるか検証するフォームフィー ルドです。
class pl.forms.PLNationalBusinessRegisterField
入力が正しいポーランド法人登記番号 (REGON) であるか検証するフォームフィー ルドです。REGON は 7 桁または 9 桁の数字で、 http://wipos.p.lodz.pl/zylla/ut/nip-rego.html のチェックサムアルゴリズ ムに従います。
class pl.forms.PLPostalCodeField
入力が正しいポーランドの郵便番号であるか検証するフォームフィールドです。 正しい郵便番号は XX-XXX 形式の数字です。
class pl.forms.PLTaxNumberField
入力が正しいポーランド納税者番号 (NIP) であるか検証するフォームフィール ドです。正しい形式は XXX-XXX-XX-XX または XX-XX-XXX-XXX です。NIP に使 われるチェックサムアルゴリズムは http://wipos.p.lodz.pl/zylla/ut/nip-rego.html で定義されています。
class pl.forms.PLAdministrativeUnitSelect
ポーランドの行政単位 (administrative unit) を選べる Select ウィジェッ トです。
class pl.forms.PLVoivodeshipSelect
ポーランドの郡 (voivodeship, 行政州) を選べる Select ウィジェットで す。

Romania: ルーマニア (ro)

class ro.forms.ROCIFField
入力が正しいルーマニア社会保障番号 (CIF) であるか検証するフォームフィー ルドです。入力の先頭に RO がついていた場合、戻り値からは除去します。
class ro.forms.ROCNPField
入力が正しいルーマニア個人番号 (CNP) であるか検証するフォームフィールド です。
class ro.forms.ROCountyField
入力をルーマニアの地域 (judet) またはその略号として検証するフォームフィー ルドです。このフィールドは、入力値の示す地域名を、標準の車両登録番号で 使われる略号に正規化して返します。このフィールドは、分音符号で書かれた 名前しか解釈できません。正しい値を入力させるのが難しいときは、 ROCountySelect の利用を検討してください。
class ro.forms.ROCountySelect
ルーマニアの地域 (judete) を選べる Select ウイジェットです。
class ro.forms.ROIBANField
入力がルーマニア国際銀行の正しい口座番号であるか検証するフォームフィー ルドです。正しい口座番号の形式は ROXX-XXXX-XXXX-XXXX-XXXX-XXXX で、ハイ フンはあってもなくてもかまいません。
class ro.forms.ROPhoneNumberField
入力が正しいルーマニアの電話番号であるか検証するフォームフィールドです。 このフィールドは、いくつかの特殊な番号を排除します。
class ro.forms.ROPostalCodeField
入力が正しいルーマニアの郵便番号であるか検証するフォームフィールドです。

Slovakia (sk)

class sk.forms.SKPostalCodeField
入力が正しいスロバキアの郵便番号であるか検証するフォームフィールドです。 正しい番号は、 XXXXX または XXX XX の形式をとります。
class sk.forms.SKDistrictSelect
スロバキアの州 (district) を選べる Select ウィジェットです。
class sk.forms.SKRegionSelect
スロバキアの地域 (region) を選べる Select ウィジェットです。

South Africa (za)

class za.forms.ZAIDField
入力が正しい南アフリカ身分証明番号であるか検証するフォームフィールドで す。検証では、 Luhn チェックサムと、簡単な (完全に厳密ではない) 誕生日 のチェックを行います。
class za.forms.ZAPostCodeField
入力が正しい南アフリカの郵便番号であるか検証するフォームフィールドです。 正しい郵便番号は 4 桁からなります。

Spain (es)

class es.forms.ESIdentityCardNumberField
入力が正しいスペインの NIF/NIE/CIF (納税者識別番号) であるか検証するフォー ムフィールドです。
class es.forms.ESCCCField
入力が正しいスペイン銀行口座番号 (Codigo Cuenta Cliente, CCC) であるか 検証するフォームフィールドです。正しい CCC 番号は、 EEEE-OOOO-CC-AAAAAAAAAA の形式であり、 E, O, C および A はそれぞれ組織、 支店、チェックサムおよび口座番号を示しています。チェックサムの上下の桁 は、それぞれ支店番号および口座番号のチェックサム値です。区切り文字にス ペースを使ってもよく、区切り文字がなくてもかまいません。
class es.forms.ESPhoneNumberField
入力が正しいスペインの電話番号であるか検証するフォームフィールドです。 正しい番号は、 9 桁からなり、先頭の番号は 6, 8, または 9 です。
class es.forms.ESPostalCodeField
入力が正しいスペインの郵便番号であるか検証するフォームフィールドです。 正しい番号は 5 桁の数字からなり、先頭の二桁が州を表す 01 から 52 の間の 値をとります。
class es.forms.ESProvinceSelect
スペインの州名を選べる Select ウィジェットです。
class es.forms.ESRegionSelect
スペインの領名を選べる Select ウィジェットです。

Switzerland (ch)

class ch.forms.CHIdentityCardNumberField
入力が正しいスイスの身分証明書番号であるか検証するフォームフィールドで す。正しい番号は、 X1234567<0 または 1234567890 の形式であり、正しいチェッ クサム値を持たねばなりません。 http://adi.kousz.ch/artikel/IDCHE.htm を 参照してください。
class ch.forms.CHPhoneNumberField
入力が正しいスイスの電話番号であるか検証するフォームフィールドです。正 しい電話番号の形式とは、 0XX XXX XX XX, 0XX.XXX.XX.XX, および 0XXXXXXXXX です。番号は 0XX XXX XX XX 形式に正規化されます。
class ch.forms.CHZipCodeField
入力が正しいスイスのZIPコードであるかフォームフィールドです。正しいコー ドは 4 桁からなります。
class ch.forms.CHStateSelect
スイスの州名を選べる Select ウィジェットです。

United Kingdom (uk)

class uk.forms.UKPostcodeField
入力が正しいイギリスの郵便番号であるか検証するフォームフィールドです。 検証に使われている正規表現は、 http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd で定義されている British Standard BS7666 address types をもとにしていま す。
class uk.forms.UKCountySelect
イギリスの地域名を選べる Select ウィジェットです。
class uk.forms.UKNationSelect
イギリスの地方名を選べる Select ウィジェットです。

United States of America (us)

class us.forms.USPhoneNumberField
入力が正しいアメリカの電話番号であるか検証するフォームフィールドです。
class us.forms.USSocialSecurityNumberField

入力がアメリカの社会保障番号 (SSN) であるか検証するフォームフィールドで す。正しい SSN 番号は、以下の規則に従います:

  • XXX-XX-XXXX 形式であること
  • 0 ばかりでできた桁グループがないこと
  • 先頭の桁グループが 666 でないこと
  • 広報に使われるブロック (987-65-4320 から 987-65-4329) の範囲内で ないこと
  • 広報で使われているために、明らかに無効であると知られている番号 (Woolworth 番号、または 1962 promotional number) でないこと
class us.forms.USStateField
入力がアメリカの州名または州名略号であるか検証するフォームフィールドで す。入力を郵便向けの標準 2 文字州名略号に正規化します。
class us.forms.USZipCodeField
入力が正しいアメリカの郵便番号であるか検証するフォームフィールドです。 XXXXX または XXXXX-XXXX 形式の番号が有効です。
class us.forms.USStateSelect
アメリカの州や領を選べる Select ウィジェットです。
class us.models.PhoneNumberField
入力がアメリカ合州国の電話番号形式 (XXX-XXX-XXXX) に従っているかを チェックする CharField です。
class us.models.USStateField
アメリカ合州国の州名を二文字の略号でデータベースに保存するモデルフィー ルドです。 forms.USStateField モデルフィールドとして表示されます。