読者です 読者をやめる 読者になる 読者になる

django.contrib.localflavor.jp.jp_prefectures

Django

django.contrib.localflavor.jp.jp_prefectures.JP_PREFECTURESのキー(Tupleの先頭要素)をISO 3166-2:JPの都道府県コードにしなかったのは痛恨のミスだと思う。(偉そうに書いているけど、僕もISOの都道府県コードというのをwebooから教えてもらった。)

「もしかしてJP_PREFECTURESはISO 3166-2:JPの都道府県順に並んでいるのか?」と思って調べてみたが、そうでもないみたい。


あと「海外」というのがないのが、僕が今やろうとしてることからすると使いにくい。

from django.utils.translation import ugettext_lazy

JP_PREFECTURES = (
   ("01", ugettext_lazy("Hokkaido")),
   # ...省略
)

JP_PREFECTURES_EXTENDED = list(JP_PREFECTURES) + [("99", ugettext_lazy("Oversea"))]

ALPHABET_TO_ISO3166_2_JP = dict((
   ("hokkaido", "01"),
   # ...省略
))

のようなコードが一番汎用性が高い気がする。