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 モデルフィールドとして表示されます。