localflavor アドオン
| revision-up-to: | 7127 (0.97pre SVN) |
|---|
Python の「バッテリ入り (batteries included)」哲学に従って、 Django には様々 な国や文化のための有用なコードが付属しています。こうしたコードは 「localflavor アドオン」と呼ばれ、 django.contrib.localflavor パッケージに収められています。
localflavor パッケージは、各国、各文化圏のコードを、それぞれ ISO 3166 国別コード に従って名付けたサブパッケージにまとめています。
localflavor アドオンの大部分は、 newforms フレームワークから導出された、 ローカライズされたフォームコンポーネントで占められています。例えば、 USStateField にはアメリカの州名略号を検証する方法が組み込まれていますし、 FISocialSecurityNumber は、フィンランドの社会保障番号の検証方法が組み 込まれています。
ローカライズコンポーネントは、サブパッケージを import するだけで使えます。 例えば、フランスの電話番号を入力するためのフィールドを生成したければ、以下 のようにします:
from django import newforms as forms
from django.contrib.localflavor import fr
class MyForm(forms.Form):
my_french_phone_no = fr.forms.FRPhoneNumberField()
localflavor でサポートされている国
localflavor がサポートしている国や文化圏は、以下の通りです:
- アルゼンチン (Argentina)
- オーストラリア (Australia)
- ブラジル (Brazil)
- カナダ (Canada)
- チリ (Chile)
- フィンランド (Finland)
- フランス (France)
- ドイツ (Germany)
- オランダ (Holland)
- アイスランド (Iceland)
- インド (India)
- イタリア (Italy)
- 日本 (Japan)
- メキシコ (Mexico)
- ノルウェー (Norway)
- ペルー (Peru)
- ポーランド (Poland)
- スロバキア (Slovakia)
- 南アフリカ (South Africa)
- スペイン (Spain)
- スイス (Switzerland)
- イギリス (United Kingdom)
- アメリカ (United States of America)
localfravor パッケージ内には、 generic というサブパッケージもありま す。このパッケージは、複数の国や文化で便利なコードをまとめています。現状 では、このモジュールには、アメリカの標準をデフォルトとしない、 newforms に 基づいた日付や時刻の入力フィールドが入っています。使い方を以下に示します:
from django import newforms as forms
from django.contrib.localflavor import generic
class MyForm(forms.Form):
my_date_field = generic.forms.DateField()
新たなローカルフレーバを追加する
私達は、これからもローカルフレーバを充実させていきたいと考えています。ロー カルフレーバに取り込みたいコードがあるなら、 チケットを作成 してください。 ローカルフレーバの作成でお願いしたいのは、文字列を Unicode リテラルで表現 (u'mystring') し、ファイルのエンコーディングに頼って指定しないで欲しい ということです。既にあるローカルフレーバのコードが参考になるでしょう。
アルゼンチン (django.contrib.localflavor.ar)
ARPostalCodeField
入力が正しい旧形式のアルゼンチン郵便番号または CPA であるか検証するフォー ムフィールドです。
ARDNIField
入力が正しい Documento Nacional de Identidad (DNI) であるか検証するフォーム フィールドです。
ARCUITField
入力が正しい Código Único de Identificación Tributaria (CUIT) 番号であるか 検証するフォームフィールドです。
ARProvinceSelect
アルゼンチンの州および自治領を選べる Select ウィジェットです。
Australia (django.contrib.localflavor.au)
AUPostCodeField
入力が正しいオーストラリアの郵便番号であるか検証するフォームフィールドです。
AUPhoneNumberField
入力がオーストラリアの電話番号であるか検証するフォームフィールドです。 有効な番号は 10 桁の数字からなります。
AUStateSelect
オーストラリアの州や領を選べる Select ウィジェットです。
Brazil (django.contrib.localflavor.br)
BRPhoneNumberField
入力が正しいブラジルの電話番号であるか検証するフォームフィールドです。 正しい形式は XX-XXXX-XXXX です。
BRZipCodeField
入力が正しいブラジルのZIPコードであるか検証するフォームフィールドです。 正しい形式はXXXXX-XXXです。
BRStateSelect
ブラジルの州や領を選べる Select ウィジェットです。
Canada (django.contrib.localflavor.ca)
CAPhoneNumberField
入力が正しいカナダの電話番号であるか検証するフォームフィールドです。 正しい形式はXXX-XXX-XXXXです。
CAPostalCodeField
入力が正しいカナダの郵便番号であるか検証するフォームフィールドです。 正しい形式はXXX XXXです。
CAProvinceField
入力が正しいカナダの州名か、州名略号であるか検証するフォームフィールドです。
CASocialInsuranceNumberField
入力が正しいカナダ社会保障番号 (SIN) であるか検証するフォームフィールドです。 正しい SIN は、XXX-XXX-XXX の形式で、 Luhn mod-10 checksum にパスします。
CAProvinceSelect
カナダの州や領を選べる Select ウィジェットです。
Chile (django.contrib.localflavor.cl)
CLRutField
入力が正しいチリ国民識別番号 ('Rol Unico Tributario' or RUT) であるか検証す るフォームフィールドです。正しい形式は XX.XXX.XXX-X です。
CLRegionSelect
チリの地域 (Regiones) を選べる Select ウィジェットです。
Finland (django.contrib.localflavor.fi)
FISocialSecurityNumber
入力が正しいフィンランド社会保障番号であるか検証するフォームフィールドです。
FIZipCodeField
入力が正しいフィンランドのZIPコードであるか検証するフォームフィールドです。 正しいコードは 5 桁の数字からなります。
FIMunicipalitySelect
フィンランドの市名 (municipality) を選べる Select ウィジェットです。
France (django.contrib.localflavor.fr)
FRPhoneNumberField
入力が正しいフランスの電話番号であるか検証するフォームフィールドです。 正しい形式は、 0X XX XX XX XX, 0X.XX.XX.XX.XX, または 0XXXXXXXXX です。 入力は 0X XX XX XX XX 形式に正規化されます。
FRZipCodeField
入力が正しいフランスのZIPコードであるか検証するフォームフィールドです。 正しいZIPコードは5桁の数字からなります。
FRDepartmentSelect
フランスの県名 (department) を選べる Select ウィジェットです。
Germany (django.contrib.localflavor.de)
DEIdentityCardNumberField
入力が正しいドイツの身分保障番号 (Personalausweis) であるか検証するフォー ムフィールドです。正しい番号は XXXXXXXXXXX-XXXXXXX-XXXXXXX-X で、どの桁グルー プもゼロだけで構成されていてはなりません。
DEZipCodeField
入力が正しいドイツのZIPコードであるか検証するフォームフィールドです。 正しいコードは5桁の数字からなります。
DEStateSelect
ドイツの州を選べる Select ウィジェットです。
Holland (django.contrib.localflavor.nl)
NLPhoneNumberField
入力が正しいオランダの電話番号であるか検証するフォームフィールドです。
NLSofiNumberField
入力が正しいオランダ社会保障番号 (SoFI/BSN) であるか検証するフォームフィー ルドです。
NLZipCodeField
入力が正しいオランダのZIPコードであるか検証するフォームフィールドです。
NLProvinceSelect
オランダの県 (province) を選べる Select ウィジェットです。
Iceland (django.contrib.localflavor.is_)
ISIdNumberField
入力が正しいアイスランドの身分証明番号 (kennitala) であるか検証するフォーム フィールドです。形式は XXXXXX-XXXX です。
ISPhoneNumberField
入力が正しいアイスランド電話番号 (7 桁の数字で、最初の3桁以後にハイフンやス ペースが入っていてもよい) であるか検証するフォームフィールドです。
ISPostalCodeSelect
アイスランドの郵便番号を選べる Select ウィジェットです。
India (django.contrib.localflavor.in_)
INStateField
入力が正しいインドの州・領名または略号であるか検証するフォームフィールドで す。入力は車両番号登録に使われる標準の 2 文字略号形式に正規化されます。
INZipCodeField
入力が正しいインドのZIPコードであるか検証するフォームフィールドです。 形式は XXXXXXX です。
INStateSelect
インドの州や領を選べる Select ウィジェットです。
Italy (django.contrib.localflavor.it)
ITSocialSecurityNumberField
入力が正しいイタリア社会保障番号 (codice fiscale) であるか検証するフォー ムフィールドです。
ITVatNumberField
入力が正しいイタリアの VAT 番号 (partita IVA) であるか検証するフォームフィー ルドです。
ITZipCodeField
入力が正しいイタリアのZIPコードであるか検証するフォームフィールドです。 正しいコードは 5 桁の数字です。
ITProvinceSelect
イタリアの県 (province) を選べる Select ウィジェットです。
ITRegionSelect
イタリアの地域名 (region) を選べる Select ウィジェットです。
Japan (django.contrib.localflavor.jp)
JPPostalCodeField
入力が正しい日本の郵便番号であるか検証するフォームフィールドです。 7 桁の数字で、ハイフンはあってもなくても構いません。
JPPrefectureSelect
日本の県を選べる Select ウィジェットです。
Mexico (django.contrib.localflavor.mx)
MXStateSelect
メキシコの州を選べる Select ウィジェットです。
Norway (django.contrib.localflavor.no)
NOSocialSecurityNumber
入力が正しいノルウェー社会保証番号 (personnummer) であるか検証するフォーム フィールドです。
NOZipCodeField
入力が正しいノルウェーのZIPコードであるか検証するフォームフィールドです。 正しいコードは 4 桁の数字です。
NOMunicipalitySelect
ノルウェーの市名 (municipality, fylker) を選べる Select ウィジェットです。
Peru (django.contrib.localflavor.pe)
PEDNIField
入力が正しいペルー国民識別番号 (DNI) であるか検証するフォームフィールドです。
PERUCField
入力が正しい納税登録番号 (Registro Unico de Contribuyentes, RUC) であるか検 証するフォームフィールドです。正しい RUC 番号は 11 桁の数字形式です。
PEDepartmentSelect
ペルーの県 (department) を選べる Select ウィジェットです。
Poland (django.contrib.localflavor.pl)
PLNationalIdentificationNumberField
入力が正しいポーランド国民識別番号 (PESEL) であるか検証するフォームフィー ルドです。
PLNationalBusinessRegisterField
入力が正しいポーランド法人登記番号 (REGON) であるか検証するフォームフィー ルドです。REGON は 7 桁または 9 桁の数字で、 http://wipos.p.lodz.pl/zylla/ut/nip-rego.html のチェックサムアルゴリズムに 従います。
PLPostalCodeField
入力が正しいポーランドの郵便番号であるか検証するフォームフィールドです。 正しい郵便番号は XX-XXX 形式の数字です。
PLTaxNumberField
入力が正しいポーランド納税者番号 (NIP) であるか検証するフォームフィールドで す。正しい形式は XXX-XXX-XX-XX または XX-XX-XXX-XXX です。NIP に使われるチェッ クサムアルゴリズムは http://wipos.p.lodz.pl/zylla/ut/nip-rego.html で定義さ れています。
PLAdministrativeUnitSelect
ポーランドの行政単位 (administrative unit) を選べる Select ウィジェットです。
PLVoivodeshipSelect
ポーランドの郡 (voivodeship, 行政州) を選べる Select ウィジェットです。
Slovakia (django.contrib.localflavor.sk)
SKPostalCodeField
入力が正しいスロバキアの郵便番号であるか検証するフォームフィールドです。 正しい番号は、 XXXXX または XXX XX の形式をとります。
SKDistrictSelect
Slovak districtsを選べる Select ウィジェットです。
SKRegionSelect
Slovak regionsを選べる Select ウィジェットです。
South Africa (django.contrib.localflavor.za)
ZAIDField
入力が正しい南アフリカ身分証明番号であるか検証するフォームフィールドです。 検証では、 Luhn チェックサムと、簡単な (完全に厳密ではない) 誕生日のチェッ クを行います。
ZAPostCodeField
入力が正しい南アフリカの郵便番号であるか検証するフォームフィールドです。 正しい郵便番号は 4 桁からなります。
Spain (django.contrib.localflavor.es)
ESIdentityCardNumberField
入力が正しいスペインの NIF/NIE/CIF (納税者識別番号) であるか検証するフォー ムフィールドです。
ESCCCField
入力が正しいスペイン銀行口座番号 (Codigo Cuenta Cliente, CCC) であるか検証 するフォームフィールドです。正しい CCC 番号は、EEEE-OOOO-CC-AAAAAAAAAA の 形式であり、 E, O, C および A はそれぞれ組織、支店、チェックサムおよび口座 番号を示しています。チェックサムの上下の桁は、それぞれ支店番号および口座番 号のチェックサム値です。区切り文字にスペースを使ってもよく、区切り文字がな くてもかまいません。
ESPhoneNumberField
入力が正しいスペインの電話番号であるか検証するフォームフィールドです。 正しい番号は、 9 桁からなり、先頭の番号は 6, 8, または 9 です。
ESPostalCodeField
入力が正しいスペインの郵便番号であるか検証するフォームフィールドです。 正しい番号は 5 桁の数字からなり、先頭の二桁が州を表す 01 から 52 の間 の値をとります。
ESProvinceSelect
スペインの州名を選べる Select ウィジェットです。
ESRegionSelect
スペインの領名を選べる Select ウィジェットです。
Switzerland (django.contrib.localflavor.ch)
CHIdentityCardNumberField
入力が正しいスイスの身分証明書番号であるか検証するフォームフィールドです。 正しい番号は、 X1234567<0 または 1234567890 の形式であり、正しいチェックサ ム値を持たねばなりません。 http://adi.kousz.ch/artikel/IDCHE.htm を参照して ください。
CHPhoneNumberField
入力が正しいスイスの電話番号であるか検証するフォームフィールドです。 正しい電話番号の形式とは、 0XX XXX XX XX, 0XX.XXX.XX.XX, および 0XXXXXXXXX です。番号は 0XX XXX XX XX 形式に正規化されます。
CHZipCodeField
入力が正しいスイスのZIPコードであるかフォームフィールドです。正しいコードは 4 桁からなります。
CHStateSelect
スイスの州名を選べる Select ウィジェットです。
United Kingdom (django.contrib.localflavor.uk)
UKPostcodeField
入力が正しいイギリスの郵便番号であるか検証するフォームフィールドです。 検証に使われている正規表現は、 http://www.govtalk.gov.uk/gdsc/schemas/bs7666-v2-0.xsd British Standard BS7666 address types をもとにしています。
UKCountySelect
イギリスの地域名を選べる Select ウィジェットです。
UKNationSelect
イギリスの地方名を選べる Select ウィジェットです。
United States of America (django.contrib.localflavor.us)
USPhoneNumberField
入力が正しいアメリカの電話番号であるか検証するフォームフィールドです。
USSocialSecurityNumberField
入力がアメリカの社会保障番号 (SSN) であるか検証するフォームフィールドです。 正しい SSN 番号は、以下の規則に従います:
- XXX-XX-XXXX 形式であること
- 0 ばかりでできた桁グループがないこと
- 先頭の桁グループが 666 でないこと
- 広報に使われるブロック (987-65-4320 から 987-65-4329) の範囲内でないこと
- 広報で使われているために、明らかに無効であると知られている番号 (Woolworth 番号、または 1962 promotional number) でないこと
USStateField
入力がアメリカの州名または州名略号であるか検証するフォームフィールドです。 入力を郵便向けの標準 2 文字州名略号に正規化します。
USZipCodeField
入力が正しいアメリカの郵便番号であるか検証するフォームフィールドです。 XXXXX または XXXXX-XXXX 形式の番号が有効です。
USStateSelect
アメリカの州や領を選べる Select ウィジェットです。