次のような選択フィールドを定義するいくつかの例を見てきました。
COUNTRIES = (
('fr', _('France')),
('de', _('Germany')),
...
)
(出典: http://code.djangoproject.com/ticket/5446 参照: http://djangosnippets.org/snippets/494/ )
主要なアンダースコアの意味は何ですか?そして、なぜタプルの2番目の値が括弧で囲まれているのですか?
主要なアンダースコアは、国際化(i18n)メカニズムで使用されるugettext関数の1つに一般的に使用される関数エイリアスです。
これは、i18nを実行している場合、翻訳が利用可能な場合、choicefieldラベルが適切なエンドユーザー言語に翻訳されることを意味します。
この種の構文を特徴とするファイルの上部に、次のようなものが表示されます(そうでない場合は、表示されているはずです)。
from Django.utils.translation import ugettext_lazy as _
詳細については、 ここのドキュメント を参照してください