web-dev-qa-db-ja.com

選択フィールドを定義するために使用されるタプルのリストの先頭の下線の意味は?

次のような選択フィールドを定義するいくつかの例を見てきました。

COUNTRIES = (
    ('fr', _('France')),
    ('de', _('Germany')),
    ...
)

(出典: http://code.djangoproject.com/ticket/5446 参照: http://djangosnippets.org/snippets/494/

主要なアンダースコアの意味は何ですか?そして、なぜタプルの2番目の値が括弧で囲まれているのですか?

54
User

主要なアンダースコアは、国際化(i18n)メカニズムで使用されるugettext関数の1つに一般的に使用される関数エイリアスです。

これは、i18nを実行している場合、翻訳が利用可能な場合、choicefieldラベルが適切なエンドユーザー言語に翻訳されることを意味します。

この種の構文を特徴とするファイルの上部に、次のようなものが表示されます(そうでない場合は、表示されているはずです)。

from Django.utils.translation import ugettext_lazy as _

詳細については、 ここのドキュメント を参照してください

72
Steve Jalim